2011-01-28 6 views
12

और के बीच View के बीच क्या अंतर है? मेरे पास View (GoogleAdView) है और मैं इसे छिपाना चाहता हूं, मैंने getLayoutParams().height को शून्य पर सेट किया है लेकिन विज्ञापन की ऊंचाई (ad.getHeight()) शून्य नहीं है।getHeight() बनाम getLayoutParams() ऊंचाई

क्या View को छिपाने का कोई तरीका है ताकि यह लेआउट में स्थान पर कब्जा न करे?

मैंने अपनी दृश्यता GONE पर सेट करने या शून्य पर ad.getLayoutParams().height सेट करने की कोशिश की है लेकिन यह काम नहीं करता है।

उत्तर

18

LayoutParams.height ऊंचाई आप इच्छा आपके विचार एक बार बाहर रखी होगा और WRAP_CONTENT, getHeight() वास्तविक ऊंचाई (यह रिटर्न 0 तक छवि को बाहर रखा नहीं है) रिटर्न की तरह विशेष स्थिरांक लिए सेट किया जा सकता है। How Android Draws Views और View - Size, padding and margins देखें।

जैसा कि माइकल ने कहा था, आपको requestLayout() को कॉल करना होगा।

4

लेआउट में एक दृश्य के छिपाने के लिए और इसे अनदेखा करने का सही तरीका यह आपके लिए काम नहीं कर रहा

setVisibility(View.GONE); 

उपयोग करने के लिए है, तो आप क्यों पता लगाने के लिए की जरूरत है। आकार को ट्विक करने का प्रयास करना एक अच्छा रास्ता नहीं है।

यदि आपको अपने लेआउट में समस्या है, तो इसे यहां पोस्ट करें।

+2

मेरी समस्या यह है कि यदि मैं सेट दृश्यता (View.GONE) के साथ करता हूं, तो स्थान विज्ञापन असीमित रहता है और लेआउट स्वयं का आकार बदलता नहीं है। मैंने ad.refreshDrawableState() के साथ प्रयास किया है; लेकिन अभी भी लेआउट का आकार बदलता नहीं है ... –

+0

ताज़ा करें DrawableState() मदद नहीं करेगा। क्या आपने दृश्य छुपाए जाने के बाद refreshLayout() को कॉल किया था? – Michael

+0

मेरी लेआउट ऑब्जेक्ट (LinearLayout) में यह विधि नहीं है (रीफ्रेश Layout())। –

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