web-dev-qa-db-fra.com

Comment changer la visibilité de la mise en page par programmation

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

<LinearLayout
    Android:id="@+id/contacts_type"
    Android:orientation="horizontal"
    Android:layout_width="fill_parent"
    Android:layout_height="wrap_content"
    Android:visibility="gone">
</LinearLayout>
51
Dariusz Bacinski

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

Depuis le API docs :

public void setVisibility(int visibility)

Depuis: API niveau 1

Définit l'état activé de cette vue.
Attributs XML associés: Android: visibilité

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

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

C'est logique. Si vous avez déjà utilisé AWT/Swing, vous le reconnaîtrez à la relation entre Container et Component. (Un Container est aComponent.)

97
aioobe
TextView view = (TextView) findViewById(R.id.textView);
view.setText("Add your text here");
view.setVisibility(View.VISIBLE);
13
SuperNova1054

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éfinissez votre mise en page dans un fichier .class 

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

Maintenant, si vous voulez utiliser cette disposition, écrivez simplement 

 linearLayout.setVisibility(View.VISIBLE);

et si vous voulez masquer la mise en page il suffit d'écrire 

 linearLayout.setVisibility(View.INVISIBLE);
6
pavel

Vous pouvez modifier la visibilité de la présentation de la même manière que pour la vue normale. Utilisez setVisibility (View.GONE), etc. Toutes les mises en page ne sont que des vues, elles ont View en tant que parent.

1
Konstantin Burov

utiliser par programme ceci:

 view.setVisibility(View.GONE); //For GONE
 view.setVisibility(View.INVISIBLE); //For INVISIBLE
 view.setVisibility(View.VISIBLE); //For VISIBLE
0
Hanisha