Android: अदृश्य और चला गया के बीच अंतर?


476

दृश्यता स्थिति के लिए invisibleऔर इसके बीच क्या अंतर है gone?


26
जब कोई दृश्य चला जाता है, तो इसका मतलब है कि यह लेआउट में कोई स्थान नहीं लेता है। जब यह अदृश्य होता है, तो यह आवश्यक कमरे को एक लेआउट में ले जाएगा लेकिन आप इसे नहीं देखते हैं।
DroidBender

जवाबों:


708

अदृश्य:

यह दृश्य अदृश्य है, लेकिन यह अभी भी लेआउट उद्देश्यों के लिए जगह लेता है।

गया हुआ:

यह दृश्य अदृश्य है, और यह लेआउट उद्देश्यों के लिए कोई स्थान नहीं लेता है।


113
के अनुरूप की तरह दिखता है display:noneऔर visibility:hidden/ सीएसएस :-) HTML में
anishsane

या
Wpf

1
यदि यह अदृश्य है, तो क्या यह अक्षम है पर भी क्लिक करेगा?
कुलदीप यादव

1
@KuldeepYadav हाँ यह गया और अदृश्य दोनों में होगा।
मोरेटेज़

1
सिर्फ भविष्य के जिज्ञासु पाठकों के लिए: हम अभी भी performItem पर क्लिक कर सकते हैं सूची / ग्रिड दृश्य पर भी यह अदृश्य है।
किंकरिंग

264

से प्रलेखन आप कह सकते हैं कि

View.GONE यह दृश्य अदृश्य है, और यह लेआउट उद्देश्यों के लिए कोई स्थान नहीं लेता है।

View.INVISIBLE यह दृश्य अदृश्य है, लेकिन यह अभी भी लेआउट उद्देश्यों के लिए जगह लेता है।


आइए कुछ तस्वीरों के साथ विचार को स्पष्ट करें।

मान लें कि आपके पास नीचे की तरह तीन बटन हैं

यहाँ छवि विवरण दर्ज करें

अब यदि आप बटन दो की दृश्यता को अदृश्य ( View.INVISIBLE) के रूप में सेट करते हैं , तो आउटपुट होगा

यहाँ छवि विवरण दर्ज करें

और जब आप बटन टू की दृश्यता को चला गया ( View.GONE) के रूप में सेट करते हैं तो आउटपुट होगा

यहाँ छवि विवरण दर्ज करें

आशा है कि यह आपके संदेह को स्पष्ट करेगा।


4
क्या विचार को मंजूरी देने की आवश्यकता है? यह स्पष्टीकरण से मेरे लिए पर्याप्त स्पष्ट लगता है।
जॉन ड्वोरक

16
@JDDvorak :) बढ़िया! मेरे पास आपके सवाल का कोई जवाब नहीं है। यदि आपको लगता है कि यह सभी उपयोगकर्ताओं के लिए बहुत स्पष्ट था, तो स्वीकृत जवाब एक टिप्पणी होना चाहिए और प्रलेखन साइट का लिंक होना चाहिए। क्या मैं सही हूँ?
पंकज कुमार

क्या होगा अगर मैं इसे edittext के लिए उपयोग करता हूं। क्या edittext से मान प्राप्त करना संभव है?
आशीष

32

सूची दृश्य या ग्रिड दृश्य के लिए एक और अंतर है, जब दृश्यता शुरू में निर्धारित होती है

अदृश्य:

एडाप्टर का getView () फ़ंक्शन कहा जाता है

गया हुआ:

एडेप्टर का getView () फ़ंक्शन ने कॉल नहीं किया, इस प्रकार यह अनावश्यक होने पर विचारों को लोड करने से रोकता है


10

INVISIBLE:
दृश्य को खींचना पड़ता है और इसमें समय लगता है।

गया:
दृश्य को खींचना नहीं है।


8
दृश्य खींचा नहीं गया है, इसे मापा और बाहर रखा गया है।
साइरोक्सिस

@ शिरोमणि शायद वह / वह विधि वापस लेने का मतलब है!
डेविड

7

मैं सही और सफल उत्तरों में जोड़ना चाहूंगा, कि यदि आप दृश्यता के साथ दृश्य को आरंभ करते हैं View.GONE, तो दृश्य को प्रारंभ नहीं किया जा सकता था और आपको कुछ यादृच्छिक त्रुटियाँ मिलेंगी।

उदाहरण के लिए, यदि आप एक लेआउट को इनिशियलाइज़ करते हैं View.GONEऔर फिर आप एक एनीमेशन शुरू करने की कोशिश करते हैं, तो मेरे अनुभव से मुझे अपना एनीमेशन बेतरतीब ढंग से काम करते हुए मिला है। कभी हाँ, कभी नहीं।

तो देखने (आकार बदलने, स्थानांतरित करने, जो भी हो) से पहले, आपको इसे स्क्रीन पर ( View.VISIBLEया View.INVISIBLEइसे ड्रा) रेंडर करने के लिए या फिर इसे हैंडल करना होगा।


हां, आप सही हैं, यह केवल कभी-कभी काम करता है जब दृश्य होता हैGONE
सूरज बहादुर

4

जब आप इसे बनाते हैं तो प्रोग्राम के संकलन के हर बार घटक को इनिशियलाइज़ किया जाता है। इसका मतलब है कि आप घटक को लेआउट से हटा रहे हैं और जब आप इसे अदृश्य बनाते हैं तो यह लेआउट में समान स्थान ले लेगा लेकिन हर बार आपको इसे इनिशियलाइज़ करने की आवश्यकता नहीं होती है। ।

यदि आप दृश्यता सेट कर चुके हैं तो आपको कंपोनेंट इनिशियलाइज़ करना होगा..जैसे

उदा बटन _mButton = नया बटन (यह);

_mutton = (बटन) findViewByid (R.id.mButton);

इसलिए यह दृश्यता = अदृश्य की तुलना में अधिक समय लेगा।


4
  • View.INVISIBLE -> दृश्य अदृश्य है लेकिन यह लेआउट में कुछ स्थान पर कब्जा कर लेगा

  • View.GONE -> दृश्य दिखाई नहीं देता है और यह लेआउट में किसी भी स्थान पर कब्जा नहीं करेगा


0

View.GONE = दृश्य दिखाई नहीं देगा और बाकी दृश्य इसके अस्तित्व को ध्यान में नहीं रखेंगे

View.INVISIBLE = दृश्य दिखाई नहीं देगा, लेकिन यह लेआउट में अपना निर्दिष्ट स्थान लेगा

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.