2010-08-12 6 views
39

Il existe un moyen de modifier la visibilité de View, mais comment puis-je modifier la visibilité par programme de la disposition définie dans XML? Comment obtenir l'objet de mise en page?Comment modifier la visibilité de la disposition par programme

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

Répondre

85

Regardez View.setVisibility(View.GONE/View.VISIBLE/View.INVISIBLE).

De l'API docs:

public void setVisibility(int visibility)

        depuis: API Niveau 1

        Définir l'état activé de ce point de vue.
        XML connexes Attributs: android: visibilité

Paramètres:
visibility         L'un des VISIBLE, INVISIBLE, ou GONE.

Notez que LinearLayout est un ViewGroup qui à son tour est un View. Autrement dit, vous pouvez très bien appeler, par exemple, myLinearLayout.setVisibility(View.VISIBLE).

Cela a du sens. Si vous avez une expérience avec AWT/Swing, vous le reconnaîtrez à partir de la relation entre Container et Component. (A Containerest unComponent.)

+0

Je demande à propos de LAYOUT pas vue. –

+4

LinearLayout hérite d'une vue, cela devrait fonctionner http://developer.android.com/reference/android/widget/LinearLayout.html – ccheneson

1

Vous pouvez modifier la visibilité de la mise en page juste de la même manière que pour une vue régulière. Utilisez setVisibility (View.GONE) etc. Toutes les mises en page ne sont que des vues, elles ont View comme parent.

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

Utilisez cette mise en page dans votre fichier xml

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

Définir votre mise en page dans le fichier .class

LinearLayout linearLayout = (LinearLayout) findViewById(R.id.contacts_type); 

Maintenant, si vous voulez chaussures cette mise en page il suffit d'écrire

linearLayout.setVisibility(View.VISIBLE); 

et si vous voulez h mise en page ide juste écrire

linearLayout.setVisibility(View.INVISIBLE); 
Questions connexes