2017-08-19 3 views
0

Comme le titre l'indique, je dois aligner le texte juste en dessous du ToggleButton qui sont sous un RadioGroup.TextView ci-dessous ToggleButton à l'intérieur de RadioGroup

Current Display

Je veux que le texte d'état en dessous de chaque cercle. J'ai essayé avec la combinaison de RelativeLayout etc. mais n'ai pas fonctionné.

Voilà ma part de mise en page:

<LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_horizontal" 
     android:orientation="horizontal" 
     android:paddingBottom="10dp" 
     android:paddingLeft="10dp" 
     android:paddingTop="10dp"> 

     <RadioGroup 
      android:id="@+id/toggleGroup" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:orientation="horizontal"> 


      <ToggleButton 
       android:id="@+id/toggleOnlineStatus" 
       android:layout_width="50dp" 
       android:layout_height="wrap_content" 
       android:background="@drawable/style_toggle_button" 
       android:checked="true" 
       android:textOff="" 
       android:textOn="" /> 

      <TextView 
       android:id="@+id/tvOnline" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_below="@id/toggleOnlineStatus" 
       android:layout_centerHorizontal="true" 
       android:text="Away" /> 

      <ToggleButton 
       android:id="@+id/toggleAwayStatus" 
       android:layout_width="50dp" 
       android:layout_height="wrap_content" 
       android:background="@drawable/style_toggle_button" 
       android:textOff="" 
       android:textOn="" /> 

      <TextView 
       android:id="@+id/tvAway" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:gravity="center_horizontal" 
       android:text="Away" /> 

      <ToggleButton 
       android:id="@+id/toggleDNDStatus" 
       android:layout_width="50dp" 
       android:layout_height="wrap_content" 
       android:background="@drawable/style_toggle_button" 
       android:textOff="" 
       android:textOn="" /> 

      <TextView 
       android:id="@+id/tvDND" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="DND" /> 

      <ToggleButton 
       android:id="@+id/toggleXAStatus" 
       android:layout_width="50dp" 
       android:layout_height="wrap_content" 
       android:background="@drawable/style_toggle_button" 
       android:textOff="" 
       android:textOn="" /> 

      <TextView 
       android:id="@+id/tvXA" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="XA" /> 


     </RadioGroup> 


    </LinearLayout> 

Répondre

1

Vous pouvez envisager d'utiliser une mise en page comme ci-dessous au lieu d'ajouter des widgets TextView à l'intérieur RadioGroup à l'horizontale d'orientation. Jetez un coup d'œil à cet exemple et voyez si c'est ce que vous cherchez.

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:layout_gravity="center_horizontal" 
android:orientation="vertical" 
android:paddingBottom="10dp" 
android:paddingLeft="10dp" 
android:paddingTop="10dp"> 


    <RadioGroup 
     android:id="@+id/toggleGroup" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal"> 

     <ToggleButton 
      android:id="@+id/toggleOnlineStatus" 
      android:layout_width="50dp" 
      android:layout_height="wrap_content" 
      android:background="@drawable/add" 
      android:checked="true" 
      android:layout_margin="12dp" 
      android:textOff="" 
      android:textOn="" /> 

     <ToggleButton 
      android:id="@+id/toggleAwayStatus" 
      android:layout_width="50dp" 
      android:layout_height="wrap_content" 
      android:background="@drawable/add" 
      android:layout_margin="12dp" 
      android:textOff="" 
      android:textOn="" /> 

     <ToggleButton 
      android:id="@+id/toggleDNDStatus" 
      android:layout_width="50dp" 
      android:layout_height="wrap_content" 
      android:background="@drawable/add" 
      android:layout_margin="12dp" 
      android:textOff="" 
      android:textOn="" /> 

     <ToggleButton 
      android:id="@+id/toggleXAStatus" 
      android:layout_width="50dp" 
      android:layout_height="wrap_content" 
      android:background="@drawable/add" 
      android:layout_margin="12dp" 
      android:textOff="" 
      android:textOn="" /> 

    </RadioGroup> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal"> 

     <TextView 
      android:id="@+id/tvOnline" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:gravity="center" 
      android:text="Online" /> 

     <TextView 
      android:id="@+id/tvAway" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:gravity="center" 
      android:text="Away" /> 

     <TextView 
      android:id="@+id/tvDND" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:gravity="center" 
      android:text="Away" /> 

     <TextView 
      android:id="@+id/tvXA" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:gravity="center" 
      android:text="Away" /> 

    </LinearLayout> 

Cet affichage est ci-dessous. enter image description here

+0

est le deuxième 'LinearLayout' l'intérieur du premier? Si oui, cela affiche le 'TextView' dans le côté droit. –

+0

Vérifiez votre disposition linéaire parent, j'ai changé l'orientation à la verticale au lieu de l'horizontale que vous avez utilisé – Inducesmile

+0

Awesome. Ça marche. J'ai dû faire du rembourrage pour aligner le texte sur les boutons. Je vous remercie! –

0

Vous pouvez utiliser android:drawableTop attribut dans l'élément ToggleButton:

 <ToggleButton 
      android:id="@+id/toggleOnlineStatus" 
      android:layout_width="50dp" 
      android:layout_height="wrap_content" 
      android:drawableTop="@drawable/style_toggle_button" 
      android:checked="true" 
      android:textOff="Online" 
      android:textOn="Online" /> 
+0

Cela n'a pas fonctionné non plus. –