2012-03-27 19 views

उत्तर

16

contentView मान लिया जाये कि राय यह है कि के माध्यम से window.addContentView()

((ViewGroup) contentView.getParent()).removeView(contentView); 
2

दुर्भाग्य से addContentView() के साथ जोड़ा गया सामग्री दृश्य हटाने का कोई तरीका नहीं है। सबसे अच्छा आप इसे छिपाने के लिए setVisibility(View.GONE) पर कॉल कर सकते हैं।

यही कारण है कि गतिविधि का onContentChanged() केवल तब कॉल किया जाता है जब सामग्री दृश्य सेट या गतिविधि में जोड़ा जाता है।

+1

मैं बस addContentView (R.layout.test) कर रहा हूँ जोड़ दिया गया है, फिर इस सेट का उपयोग करने के लिए कैसे निकालें दृश्यता (देखें। GONE) – James

+1

आपको अपने लेआउट की जड़ प्राप्त करने की आवश्यकता होगी, और फिर इसे छुपाएं। उदाहरण: सेट करें 'एंड्रॉइड: आईडी = "@ + आईडी/रूट" ', और आपकी गतिविधि कॉल में' findViewById (R.id.root) .setVisibility (View.GONE);' – zrgiu

+0

यह एक गलत उत्तर है। विन्स द्वारा जवाब देखें। वह बताता है कि आप उस दृश्य को कैसे हटा सकते हैं (जिसे आप दावा नहीं कर सकते हैं) –

9

यह

View youAddedView; 
ViewGroup rootView = (ViewGroup) findViewById(android.R.id.content); 
for (int i = 0; i < rootView.getChildCount(); i++) { 
    if(rootView.getChildAt(i) == yourAddedView) { 
     // do anything here 
    } 
} 
+3

उस समय के बारे में नहीं जानता था, आपके उत्तर में कमी की एकमात्र चीज rootView.removeViewAt (i) है; टूटना; –

-1

तुम यहाँ आप बटन को क्लिक घटना पर चले गए करने के लिए दृश्यता सेट कर सकते हैं पर दो काम कर सकते हैं की कोशिश करो। या आप आप पहले से ही देखने के लिए संदर्भ है, तो 0dp को यह अपने लेआउट प्रदर्शन

4

छुपा देगा लेआउट चौड़ाई और ऊंचाई के लिए लेआउट पैरामीटर सेट कर सकते हैं तो आप बस सिर्फ कर सकते हैं:

ViewGroup rootView = (ViewGroup) findViewById(android.R.id.content); 
rootView.removeView(viewToRemove); 

इसके बजाय व्यू ग्रुप के माध्यम से लूपिंग का।

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

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