62 votes

2 boutons côte à côte - agencements Android

Comment puis-je mettre 2 boutons côte à côte, de façon à ce qu'ils occupent toute la largeur, avec un peu d'espace entre eux .

J'ai pensé à une mise en page linéaire horizontale, avec 2 mises en page linéaires secondaires définies pour correspondre au parent et au poids 1, chacune d'entre elles contenant le bouton y a-t-il une manière plus simple ? cela peut-il être accompli avec des mises en page relatives ?

Merci !

0 votes

Vous pouvez essayer le tablelayout, deux boutons sont placés dans la tabrow, je pense que cela vous convient.

0 votes

Cela peut être plus complexe que ce que la question suggère puisque vous devez ajouter la mise en page du tableau puis, après la ligne du tableau, ajouter deux boutons.

125voto

2red13 Points 4424
<LinearLayout 
    android:id="@+id/LinearLayout02" 
    android:layout_height="wrap_content" 
    android:layout_width="match_parent" 
    android:layout_alignParentBottom="true">
    <Button 
        android:id="@+id/Button02" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:layout_weight="1" android:text="Apply">
    </Button>
    <Button 
        android:id="@+id/Button03" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content"
        android:layout_weight="1" 
        android:text="Cancel">
    </Button>
</LinearLayout>

0 votes

C'est la première chose que j'ai essayée, mais j'ai eu une erreur de compilation en essayant d'appliquer le layout_weight sur les boutons peut-être que quelque chose d'autre était faux . Je vais réessayer

0 votes

Cela me surprend, j'utilise ce code de 1,6 à 2.3 sans aucun problème

2 votes

Layout_alignParentBottom (ligne 5) est invalide pour LinearLayout.

5voto

user1179181 Points 14
<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:orientation="horizontal" >

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_margin="5dp"
    android:text="button1"
    android:id="@+id/button" />

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_margin="5dp"
    android:text="button2"
    android:id="@+id/button2" />

</LinearLayout>

5voto

iarroyo Points 106

Si vous voulez que les 2 boutons se chevauchent sur toute la largeur et que les boutons aient la même largeur, vous devez changer la propriété des 2 boutons :

android:layout_width="wrap_content" a android:layout_width="match_parent"

parce que si vous avez un de ces boutons avec un texte long et l'autre bouton avec un texte court, le bouton avec le texte long prend plus d'espace.

0voto

Derrick Points 15

À l'aide de LinearLayout, pour chaque bouton : la largeur doit correspondre à celle du bouton parent, et la taille doit être la même que celle du bouton parent. weight="1" . La marge permet de laisser un peu d'espace entre chaque bouton. Ainsi, vous pouvez ajouter autant de boutons que vous le souhaitez dans une rangée, tous de largeur similaire.

android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_margin="5dp"

-3voto

Hussain Points 3480

Essayez ça,

Faites un RelaiveLayout orientation como horizontal et les donner padding pour avoir un espace entre eux..

Faites le Layoutheight y Layoutwidth de votre souhait

Merci

3 votes

L'orientation est une propriété de LinearLayout, et non de RelativeLayout. Même si je ne pense pas que cela génère une erreur de compilation, cela n'a en fait aucun effet.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X