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>
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
.)
TextView view = (TextView) findViewById(R.id.textView);
view.setText("Add your text here");
view.setVisibility(View.VISIBLE);
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);
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.
utiliser par programme ceci:
view.setVisibility(View.GONE); //For GONE
view.setVisibility(View.INVISIBLE); //For INVISIBLE
view.setVisibility(View.VISIBLE); //For VISIBLE