Gérer la mise en page à l'intérieur d'un radiogroupe orienté horizontalement

J'utilise TableLayout avec TableRows comme activité principale.

À l'intérieur de TableLayout, vous trouverez un groupe de radio contenant 2 boutons de radio à l'intérieur de l'activité (le groupe de radio se trouvant dans une rangée de table). Je veux pouvoir aligner le bouton radio le plus à droite vers l'écran du bord droit, de sorte que le "gap" se trouve entre le bouton radio gauche et le bouton droit (au lieu d'après le bouton radio droit). c'est à dire

  • Android - Centre de vision de texte dans LinearLayout
  • Android définit la gravité d'un TextView par programme
  • Donc, au lieu d'avoir
    | (X) (x) gap |
    j'aurai
    | (X) gap (x) |

    Où (x) sont les boutons radio et | Sont les bords de l'écran

    Je peux utiliser la gravité (centre_horizontal) pour mettre les deux boutons au milieu (c.-à-d. Gap (x) (x) gap |) mais je ne peux pas être capable de les diviser comme je le veux comme indiqué précédemment

    4 Solutions collect form web for “Gérer la mise en page à l'intérieur d'un radiogroupe orienté horizontalement”

    Tout ce qu'il faut pour espacer un nombre arbitraire de boutons horizontalement sur l'écran:

    1. RadioGroup doit avoir android:orientation="horizontal" et android:layout_width="fill_parent"
    2. Chaque bouton radio doit avoir android:layout_weight="1" , sauf le bouton le plus à droite (pour le faire aligner sur le bord droit de l'écran)!

    Capture d'écran Paysage

    Cela m'a pris des heures à comprendre.

    Voici un exemple de code, avec un bonus de deux étiquettes de texte et les bords droit et gauche de l'écran, pour une application de sondage.

     <RadioGroup android:id="@+id/radio_group" android:orientation="horizontal" android:layout_below="@id/question" android:layout_width="fill_parent" android:layout_height="wrap_content" android:visibility="gone" > <RadioButton android:id="@+id/strong_disagree_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="1" /> <RadioButton android:id="@+id/disagree_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="@string/disagree" /> <RadioButton android:id="@+id/neutral_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="@string/neutral" /> <RadioButton android:id="@+id/agree_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="@string/agree" /> <RadioButton android:id="@+id/strong_agree_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="5" /> </RadioGroup> <TextView android:id="@+id/disagree_label" android:text="@string/strongly_disagree_txt" android:layout_below="@id/radio_group" style="@style/TextAppearance" android:visibility="gone" /> <TextView android:id="@+id/agree_label" android:text="@string/strongly_agree_txt" android:layout_below="@id/radio_group" android:layout_alignParentRight="true" style="@style/TextAppearance" android:layout_width="wrap_content" android:visibility="gone" /> 

    J'ai trouvé ma solution. Combinaison de poids et de gravité et suppression des marges. Le groupe de radio peut avoir layout_width = "fill_parent". Chaque bouton radio devrait avoir layout_weight = "1", mais la taille de disposition pour chaque bouton radio doit toujours être spécifiée pour remplacer la valeur par défaut de "37", ce qui, je suppose, est la largeur d'image du bouton radio par défaut.

      <RadioGroup android:id="@+id/overall" android:layout_width="fill_parent" android:layout_height="80dp" android:gravity="center" android:orientation="horizontal"> 

    Le premier bouton devrait avoir:

      android:layout_weight="1" android:layout_gravity="center|left" 

    Le dernier bouton devrait avoir:

      android:layout_gravity="center|right" 

    Remarque: tous les boutons ont la mise en page layout_gravioty, mais aucun paramètre de mise en page de mise en page pour le bouton le plus à droite!

    Avez-vous déjà trouvé une solution à cela? Ma solution intermédiaire pourrait aider, mais ce n'est pas l'image complète pour moi. J'ai pu le faire en définissant des largeurs spécifiques, mais cela ne permet pas à la vue de redimensionner pour s'adapter à l'épaisseur de l'écran:

      <RelativeLayout android:id="@+id/overall_layout" android:layout_width="290dp" android:layout_height="wrap_content"> <RadioGroup android:id="@+id/overall" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <RadioButton android:id="@+id/overall_1" android:tag="1" android:button="@drawable/radio_1" android:layout_width="50dp" android:layout_marginRight="10dp" android:layout_height="wrap_content"></RadioButton> <RadioButton android:id="@+id/overall_2" android:tag="2" android:button="@drawable/radio_2" android:layout_width="50dp" android:layout_marginRight="10dp" android:layout_height="wrap_content"></RadioButton> <RadioButton android:id="@+id/overall_3" android:tag="3" android:button="@drawable/radio_3" android:layout_width="50dp" android:layout_marginRight="10dp" android:layout_height="wrap_content"></RadioButton> <RadioButton android:id="@+id/overall_4" android:tag="4" android:button="@drawable/radio_4" android:layout_width="50dp" android:layout_marginRight="10dp" android:layout_height="wrap_content"></RadioButton> <RadioButton android:id="@+id/overall_5" android:tag="5" android:button="@drawable/radio_5" android:layout_width="50dp" android:layout_height="wrap_content"></RadioButton> </RadioGroup> <TextView android:text="left" android:id="@+id/left" android:layout_below="@id/overall" android:layout_alignParentLeft="true" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView> <TextView android:text="right" android:id="@+id/right" android:layout_below="@id/overall" android:layout_alignParentRight="true" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView> </RelativeLayout> 

    Notez qu'il n'y a pas de marge sur le dernier bouton.

    J'essaie d'avoir 5 boutons personnalisés dans un groupe de radio, le 1er justifié à la gauche et le dernier justifié par la droite. Les boutons ont exactement 50 pixels de largeur et je ne veux aucun texte associé aux boutons individuellement. Les 2 textes ci-dessous sont laissés et justes dans la disposition relative. L'utilisation de "layout_gravity" n'a aucun effet et "layout_weight" ajoute le rembourrage à droite de chaque bouton, ce qui fait que le bouton le plus à droite ne soit plus justifié.

    Beaucoup de cheveux en tirant dessus.

    Si je comprends bien la question, vous pouvez également essayer le prochain code dans RadioGroup:

     <ToggleButton android:layout_width="wrap_content" android:layout_height="wrap_content" /> <View android:id="@+id/view1" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" /> <ToggleButton android:layout_width="wrap_content" android:layout_height="wrap_content" /> 
    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.