2011-05-09 6 views
9

मैं प्रोग्रामरिक रूप से लिनियरलाइट में टेक्स्ट व्यू जोड़ रहा हूं, और उन्हें स्पर्श पर हटा रहा हूं। यह सब ठीक काम करता है सिवाय इसके कि जब अंतिम टेक्स्ट व्यू छुआ जाता है तो इसे हटाया नहीं जाता है। यदि मैं स्क्रीन पर कुछ और करता हूं जैसे कुंजीपटल से छुटकारा पाएं या नीचे स्क्रॉल करें, तो आखिरी टेक्स्ट व्यू हटा दिया जाएगा, जो मुझे लगता है कि यह एक ताज़ा समस्या है, लेकिन मुझे नहीं पता कि इसे कैसे हल किया जाए।किसी लाइनरलेआउट से टेक्स्टव्यू को हटाने में समस्या होने पर

यहाँ कोड मैं उपयोग कर रहा हूँ में से कुछ है:

final TextView tv1 = new TextView(this); 
tv1.setText("Test"); 

tv1.setOnClickListener(new View.OnClickListener() { 

    @Override 
    public void onClick(View v) { 

     linearlayout1.removeView(tv1); 

    } 
}); 

मैं भी समस्या को हल करने की कोशिश करने के लिए इस कोड को शामिल किया है, लेकिन यह कुछ भी नहीं बदला:

if (linearlayout1.getChildCount() == 1) { 
    linearlayout1.removeAllViewsInLayout(); 
} 
+4

यह एक बग का अधिक लगता है, लेकिन एक चीज जिसे आप कोशिश कर सकते हैं 'tv1.setVisibility (View.GONE)' हटाने से पहले अपने टेक्स्ट व्यू को छुपा रहा है। या वैकल्पिक रूप से आप redrawing ट्रिगर करने के लिए अंतिम आइटम को हटाने के बाद 'linearlayout1.invalidate()' जोड़ सकते हैं। – harism

+0

मैं अब इन्हें जाने जा रहा हूं। धन्यवाद। – NotACleverMan

+1

कार्यों को अमान्य करें :) धन्यवाद :) यदि आप इस टिप्पणी को उत्तर के रूप में छोड़ देते हैं तो मैं इसे दूसरों के लिए ढूंढने के लिए टिक सकता हूं – NotACleverMan

उत्तर

12

यह एंड्रॉयड में एक बग के और अधिक लगता है, लेकिन एक बात आप की कोशिश कर सकते हटाने से पहले अपने TextView छिपा है:

tv1.setVisibility(View.GONE) 

या वैकल्पिक रूप से आप जोड़ सकते हैं:

linearlayout1.invalidate() 

अंतिम आइटम को हटाने के बाद redrawing को गति प्रदान करने।

संबंधित मुद्दे