2010-08-12 10 views
39

दृश्य की दृश्यता बदलने का तरीका है, लेकिन मैं XML में परिभाषित लेआउट की प्रोग्रामेटिक दृश्यता कैसे बदल सकता हूं? लेआउट ऑब्जेक्ट कैसे प्राप्त करें?प्रोग्रामेटिक रूप से लेआउट की दृश्यता को कैसे बदलें

<LinearLayout 
    android:id="@+id/contacts_type" 
    android:orientation="horizontal" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:visibility="gone"> 
</LinearLayout> 

उत्तर

85

View.setVisibility(View.GONE/View.VISIBLE/View.INVISIBLE) पर एक नज़र डालें।

API docs से:

public void setVisibility(int visibility)

        के बाद से: एपीआई स्तर 1

        इस दृश्य के सक्षम स्थिति सेट करें।
        संबंधित एक्सएमएल गुण: एंड्रॉयड: दृश्यता

पैरामीटर:
visibility         दिखाई, अदृश्य, या चला गया में से एक।

कि नोट LinearLayout एक ViewGroup जो बारी में एक View है। यही है, उदाहरण के लिए, myLinearLayout.setVisibility(View.VISIBLE), आप बहुत अच्छी तरह से कॉल कर सकते हैं।

यह समझ में आता है। यदि आपके पास एडब्ल्यूटी/स्विंग के साथ कोई अनुभव है, तो आप इसे Container और Component के बीच संबंध से पहचान लेंगे। (ए ContainerएकComponent है।)

+0

मैं लिखने के बारे में पूछ रहा हूं। –

+4

लिनियरलाउट एक दृश्य से विरासत में है, इसलिए इसे http://developer.android.com/reference/android/widget/LinearLayout.html पर काम करना चाहिए – ccheneson

1

तुम बस नियमित रूप से देखने के लिए के रूप में एक ही तरीके से लेआउट दृश्यता बदल सकते हैं। सेट दृश्यता (देखें। GONE) आदि का उपयोग करें सभी लेआउट केवल दृश्य हैं, उन्होंने अपने माता-पिता के रूप में देखा है।

12
TextView view = (TextView) findViewById(R.id.textView); 
view.setText("Add your text here"); 
view.setVisibility(View.VISIBLE); 
6

अपने xml फ़ाइल में इस लेआउट का उपयोग

<LinearLayout 
    android:id="@+id/contacts_type" 
    android:orientation="horizontal" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:visibility="gone"> 
</LinearLayout> 

.class फ़ाइल

LinearLayout linearLayout = (LinearLayout) findViewById(R.id.contacts_type); 
अब अगर आप जूता करना चाहते

में अपने लेआउट को परिभाषित करें इस लेआउट सिर्फ लिखने

linearLayout.setVisibility(View.VISIBLE); 

और यदि आप एच करना चाहते हैं विचार लेआउट बस

linearLayout.setVisibility(View.INVISIBLE); 
संबंधित मुद्दे