2012-01-05 12 views
7

मेरे आवेदन में मैं रैखिक लेआउट में गतिशील रूप से दृश्य जोड़ रहा हूं। प्रत्येक दृश्य में एक बटन होता है यदि आप उस पर क्लिक करते हैं तो दृश्य हटा दिया जाएगा। रैखिक लेआउट रीफ्रेश कैसे करें? क्योंकि जब मैंने किसी भी दृश्य को हटा दिया तो दृश्य की स्थिति बदल दी जाएगी।एंड्रॉइड - रैखिक लेआउट के दृश्य को कैसे हटाएं

उत्तर

10

किसी भी दृश्य आप निम्नलिखित तर्क लेआउट से किसी भी दृश्य को हटाने के लिए उपयोग कर सकते हैं

ll.removeView(view)// to remove particular view 
ll.removeViewAt(position);// to remove view from particular position 

उपयोग निकालने के लिए

ll.post(new Runnable() { 
    public void run() { 
     ll.removeView(view); 
    } 
}); 
+1

आपने इस तरह 'removeAllViews()' का उपयोग क्यों नहीं किया: ll.removeAllViews(); – NrNazifi

4

आप सवाल स्पष्ट नहीं है। लेकिन आप दृश्य को दृश्यता = चलाए जाने की कोशिश कर सकते हैं।

0

आप

setContentView(R.layout.main); 

निकालने के बाद की कोशिश की थी?

+0

ओह, भूल गया कि आप तत्वों dynamicaly – quux

0

रैखिक लेआउट रीफ्रेश कैसे करें?

linearLayoutObject.invalidate() 

कैसे रेखीय लेआउट से आइटम को हटाने के लिए?

linearLayoutObject.removeView(View view); 

या

linearLayoutObject.removeViewAt(int index); 

मुझे आशा है कि यह मदद करता है .. को हटाने या जोड़ने से

+0

बनाने कृपया सुझाव दे संपादन जहां "ठीक" लिंक को रोकने की उम्मीद है। लिंक लिंक को "लिंक 1" या कुछ समान के साथ बदलना एक भयानक संपादन है, और आप उन लोगों के लिए काम कर रहे हैं जिन्हें उन्हें ठीक करना है। मेरे संपादन को देखें कि लिंक वास्तव में * काम करने के लिए कैसे हैं: http://stackoverflow.com/q/8741270/229044 – meagar

2

विचार LinearLayout को मापने और उसके सभी बच्चों को फिर से लेआउट जिसके कारण वे स्थानांतरित करने के लिए है। आप आसानी से अदृश्यता को देखने की कोशिश कर सकते हैं।

myLinearLayout.setVisibility(View.INVISIBLE); 

किसी भी दृश्य को अदृश्य करने के लिए सेट अभी भी लेआउट में अपना आकार और स्थिति बनाए रखता है लेकिन अब देखा नहीं जा सकता है।

0

डेटा को गतिशील रूप से भरने के लिए एडाप्टर के साथ सूचीदृश्य का उपयोग करें (क्योंकि यह उनके लिए बनाया गया है) और जब भी आपका डेटा या यूआई बदल जाता है तो नया एडाप्टर (डेटा सेट) बनाते हैं और एडाप्टर को परिवर्तन के बारे में सूचित करते हैं।

0

सीधे शब्दों का प्रयोग करें linearLayout.removeView (दृश्य देखें); यह स्वचालित रूप से रीफ्रेश होगा।

0

layout.removeAllViewsInLayout(); layout.invalidate();

मैं इस मदद

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