2017-10-13 3 views
0

Comment puis-je créer trois boutons de sorte que seul le premier apparaisse, et une fois qu'il est cliqué, il est remplacé par deux boutons côte à côte à sa place? Ces boutons doivent être centrés.Android - Un bouton se transforme en deux

First button

Two buttons that appear once the entered button is pressed

C'est ce que j'ai jusqu'à présent:

<Button 
      android:id="@+id/enter_button" 
      android:layout_width="100dp" 
      android:layout_height="50dp" 
      android:padding="5dp" 
      android:text="@string/enter_button" 
      android:textColor="#FFFFFF" /> 


    </LinearLayout> 

    <LinearLayout 
     android:id="@+id/buttons_layout" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center" 
     android:orientation="horizontal" 
     android:padding="30dp" > 

     <Button 
      android:id="@+id/clear_button" 
      android:layout_width="100dp" 
      android:layout_height="50dp" 
      android:text="@string/clear_button" 
      android:textColor="#FFFFFF" /> 

     <Button 
      android:id="@+id/reserve_button" 
      android:layout_width="100dp" 
      android:layout_height="50dp" 
      android:padding="5dp" 
      android:text="@string/reserve_button" 
      android:textColor="#FFFFFF" /> 

    </LinearLayout> 

Mais ce qui provoque les deux boutons côte à côte à apparaître en dessous de la première (pas directement au-dessus il). Je sais déjà comment utiliser setVisibility pour faire disparaître le bouton d'entrée.

+1

'setVisibility()' méthode vous aidera beaucoup –

Répondre

0

C'est simple. L'élément parent est probablement linearlayout. Changez-le en framelayout ou ajoutez-en un s'ils sont sous l'élément racine et cela devrait fonctionner.

Bonne chance.

0

mettre tous les 3 boutons dans une LinearLayout horizontale comme ci-dessous:

<LinearLayout 
    android:id="@+id/buttons_layout" 
    android:layout_width="368dp" 
    android:layout_height="wrap_content" 
    android:gravity="center" 
    android:orientation="horizontal" 
    android:padding="30dp" 
    tools:layout_editor_absoluteX="8dp" 
    tools:layout_editor_absoluteY="0dp"> 

    <Button 
     android:id="@+id/enter_button" 
     android:layout_width="100dp" 
     android:layout_height="50dp" 
     android:padding="5dp" 
     android:text="Enter" 
     android:textColor="#FFFFFF" /> 

    <Button 
     android:id="@+id/clear_button" 
     android:layout_width="100dp" 
     android:layout_height="50dp" 
     android:text="@string/clear_button" 
     android:textColor="#FFFFFF" 
     android:visibility="gone"/> 

    <Button 
     android:id="@+id/reserve_button" 
     android:layout_width="100dp" 
     android:layout_height="50dp" 
     android:padding="5dp" 
     android:text="@string/reserve_button" 
     android:textColor="#FFFFFF" 
     android:visibility="gone"/> 

</LinearLayout> 

La dernière visibilité de deux boutons doivent être « Gone » et touche « Enter » cliquez, définissez leur visibilité sur « Visible » et « entrer "devrait être réglé sur" Gone ".

Pour centrer les boutons, le problème est que vous utilisez layout-gravity. Au lieu de cela, vous devriez utiliser la gravité pour centrer les enfants (voir le code ci-dessus).

Note: Ne pas utiliser setVisibility (Invisible), l'utilisation setVisibility (Déplacé)