2017-03-05 3 views
-1

Imagine une application Android qui a 3 TextViews dans une disposition linéaire, l'un séquentiellement sous l'autre, puis 2 boutons. Le bouton 1 doit masquer la deuxième vue de texte et le second bouton doit le rendre visible à nouveau.Android: masquer un élément

La seule exigence est que lorsque la deuxième vue de texte disparaît, elle ne doit occuper aucun espace, ce qui signifie que la troisième vue de texte doit occuper son espace pendant qu'elle est partie.

J'ai essayé ceci avec les paramètres INVISIBLE et VISIBLE, cependant, un espace réservé vide reste à la place de la deuxième vue de texte.

J'ai essayé avec GONE, ce qui a éliminé l'espace vide, mais je n'ai pas pu faire apparaître la deuxième vue de texte à nouveau.

Connaissez-vous un moyen d'y parvenir?

Exemple:

//////////////////////////// 
initial state: 
textview1 
textview2 
textview3 
button1 
button2 

--> user pushes button1 

new state: 
textview1 
textview3 
button1 
button2 

--> user pushes button2 

new state: initial state 
//////////////////////////// 

Merci

+0

'J'ai essayé avec GONE, ce qui a éliminé l'espace vide, mais je n'ai pas réussi à faire réapparaître la seconde vue de texte.» Vous devez réinitialiser sa visibilité à VISIBLE. –

+0

Comment avez-vous essayé de le faire apparaître?Vous devez définir à nouveau sa visibilité sur Visible – X3Btel

+0

vous pouvez également visible GONE texView à nouveau en définissant la visibilité. –

Répondre

3

deux façons:

XML

dans votre fichier XML. Si vous voulez avoir une visibilité initiale

android:visibility="gone" <-- hides 

ou

android:visibility="visible" <-- makes it visible 

Java

dans le fichier java. Lorsque vous avez besoin de le changer par programme

textView.setVisibility(View.GONE);//makes it disappear 

ou

textView.setVisibility(View.VISIBLE);//makes it visible again 

Différentes visibilités:

  • visibles

lui-même dit: Définit la vue à visi ble

  • Invisible

Hides la vue, mais il occupe toujours l'espace.

  • Autant en emporte

la vue Masque, et le fait pas occuper l'espace.