J'utilise un objet TableLayout avec TableRows comme activité principale.
À l'intérieur de TableLayout se trouve un groupe de radio contenant 2 boutons radio à l'intérieur de l'activité (le groupe de radio étant à l'intérieur d'une rangée de tableau). Je veux pouvoir aligner le bouton radio le plus à droite sur l'écran Edge de droite, de sorte que "l'écart" se situe entre le bouton radio gauche et le bouton droit (au lieu d'être après le bouton radio de droite). c'est à dire.
Donc au lieu d'avoir
| écart (x) (x) |
J'aurai
| (x) espace (x) |
où (x) sont les boutons radio et | sont les bords de l'écran
Je peux utiliser la gravité (center_horizontal) pour placer les deux boutons au milieu (i.e. | gap (x) (x) gap |), mais il me semble impossible de les séparer comme je le souhaite, comme indiqué précédemment
Tout ce dont vous avez besoin pour espacer uniformément un nombre arbitraire de boutons horizontalement sur l’écran:
Android:orientation="horizontal"
& Android:layout_width="fill_parent"
Android:layout_weight="1"
, à l'exception du bouton le plus à droite (pour l'aligner sur le bord droit de l'écran)!Cela m'a pris des heures pour comprendre.
Voici un exemple de code, avec en prime 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"
/>
Trouvé ma solution. Une combinaison de poids et de gravité et d'élimination des marges. Le groupe radio peut avoir layout_width = "fill_parent". Layout_weight = "1" doit être attribué à chaque bouton radio, mais la largeur de layout_width de chaque bouton radio doit toujours être spécifiée pour remplacer la valeur par défaut de "37", qui 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 layout_gravioty défini, mais aucun paramètre layout_weight pour le bouton le plus à droite!
Si je comprends bien votre question, vous pouvez également essayer le code suivant 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" />
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 à la largeur 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, avec le premier justifié à gauche et le dernier justifié à droite. Les boutons ont exactement 50 pixels de large et je ne veux pas de texte associé aux boutons individuellement. Les 2 textes ci-dessous sont à gauche et à droite dans la mise en page relative. L'utilisation de "layout_gravity" n'a pas d'effet et "layout_weight" ajoute un remplissage à la droite de chaque bouton, ce qui entraîne la suppression du bouton le plus à droite.
Beaucoup de cheveux tirant sur cela.