प्रोग्राम को दृश्य रूप से कैसे छिपाएं?


125

मेरे आवेदन में, मेरे पास LinearLayoutएक दूसरे के ठीक ऊपर 2 है । एक मेनू विकल्प के माध्यम से, मैं नीचे एक को गायब करने में सक्षम होना चाहता हूं, और गायब होने पर शीर्ष एक ड्रॉप डाउन करना चाहता हूं LinearLayout

समस्या यह है कि, मुझे यह पता नहीं है कि जावा में यह कैसे करना है।

इसे एनिमेटेड नहीं करना है, मैं Layoutएक अन्य गतिविधि (मेनू) की वापसी पर छिपाना चाहता हूं , में OnActivityResult। मेनू activityसेट करता booleanहै जिस पर मैं जांच करता हूं OnActivityResult, और इसके अनुसार यह मूल्य है जो मैं निर्धारित करता हूं कि मुझे नीचे छिपाने या दिखाने की आवश्यकता है Layout:

// Only change value if it is different from what it was.
if(mUseVolumeButtonAsPTT != resultData.getBoolean("UseVolumeButtonAsPTT")){
    mUseVolumeButtonAsPTT = resultData.getBoolean("UseVolumeButtonAsPTT");
    if(!mUseVolumeButtonAsPTT){
        // Hide lower LinearLayout.
    } else {
        // Show lower LinearLayout.
    }
}

क्या कोई मुझे संकेत या लिंक दे सकता है कि मुझे यह कैसे करना चाहिए?

जवाबों:


324

आप चाहें view.setVisibility(View.GONE)तो लेआउट से इसे हटा सकते हैं।

या view.setVisibility(View.INVISIBLE)यदि आप इसे छिपाना चाहते हैं।

से एंड्रॉयड डॉक्स :

अदृश्य

यह दृश्य अदृश्य है, लेकिन यह अभी भी लेआउट उद्देश्यों के लिए जगह लेता है। के साथ प्रयोग करें setVisibility(int)और android:visibility

गया हुआ

यह दृश्य अदृश्य है, और यह लेआउट उद्देश्यों के लिए कोई स्थान नहीं लेता है। के साथ प्रयोग करें setVisibility(int)और android:visibility


16
यदि यह view.setVisibility (View.INVISIBLE) पर सेट है, तो क्या उपयोगकर्ता इसके साथ इंटरैक्ट कर सकता है?
विस्कैमबल

उदाहरण के लिए, क्या कोई गतिविधि, यदि यह GONE पर सेट है, तो दृश्य में परिवर्तन कर सकती है? मुझे लगता है कि अगर यह INVISIBLE पर सेट है, तो आप सोच सकते हैं।
मोहतरमा

1
RelativeLayout के बारे में क्या? दृश्य स्थिति एक-दूसरे पर निर्भर हैं। मुझे आश्चर्य है कि एक दृश्य के जाने के बाद क्या होगा।
जिन विन हेटेट

@ErPragatiSingh कृपया हमेशा कॉपी-पेस्ट करने की जगह से लिंक डालें, और उत्तर को ओपी कैसे कहना चाहते हैं, के समान रखें। :)
सूफियान

@ सूफियान धन्यवाद, यह सभी एंड्रॉइड डेवलपर आधिकारिक साइट से है।
Prags

19

इसे इस्तेमाल करे:

linearLayout.setVisibility(View.GONE);

0

कोटलिन समाधान

view.isVisible = true
view.isInvisible = true
view.isGone = true

// For these to work, you need to use androidx and import:
import androidx.core.view.isVisible // or isInvisible/isGone

कोटलिन एक्सटेंशन समाधान

यदि आप चाहते हैं कि वे अधिक सुसंगत लंबाई के हों, तो अशक्त विचारों के लिए काम करें और गलत बूलियन लिखने की संभावना कम करें, इन कस्टम एक्सटेंशन का उपयोग करके देखें:

// Example
view.hide()

fun View?.show() {
    if (this == null) return
    if (!isVisible) isVisible = true
}

fun View?.hide() {
    if (this == null) return
    if (!isInvisible) isInvisible = true
}

fun View?.gone() {
    if (this == null) return
    if (!isGone) isGone = true
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.