2011-06-22 5 views
5

Je suis actuellement en train de concevoir un ButtonBar avec 5 boutons (ils seront tous des ImageButtons, mais pour l'instant, seulement 3 d'entre eux le sont). C'est mon premier projet androïde donc j'apprends au fur et à mesure. J'essaie de pondérer chaque bouton de manière égale, sans les mettre à l'échelle (avoir un remplissage égal plutôt qu'une largeur égale). Ceci est mon code à ce jour:Enfants en disposition linéaire avec remplissage égal

<LinearLayout 
android:id="@+id/back" 
android:orientation="horizontal" 
android:layout_height="50dip" 
android:layout_width="fill_parent" 
android:layout_alignParentBottom="true" 
android:background="#000000" 
style="@android:style/ButtonBar" 
android:weightSum="5" 
> 

    <ImageButton 
    android:id="@+id/info_button" 
    android:padding="20dp" 
    android:background="@drawable/info" 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content" 
    android:layout_weight="1" 
    /> 
    <Button 
    android:id="@+id/wishlist_button" 
    android:text="@string/wish_label" 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content" 
    android:layout_weight="1" 
    android:padding="20dp" 
    android:textSize="15dip" 
    android:textColor="#b7b7b7"></Button> 
    <Button 
    android:id="@+id/buy_button" 
    android:text="@string/buy_label" 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content" 
    android:layout_weight="1" 
    android:padding="20dp" 
    android:textSize="15dip" 
    android:textColor="#b7b7b7"/> 
    <ImageButton 
    android:id="@+id/dislike_button" 
    android:padding="20dp" 
    android:background="@drawable/dislike_button" 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content" 
    android:layout_weight="1" 
    /> 
    <ImageButton 
    android:id="@+id/like_button" 
    android:padding="20dp" 
    android:background="@drawable/like_button" 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content" 
    android:layout_weight="1" 
    /> 

C'est à quoi il ressemble maintenant: étirées pondérée: http://i.imgur.com/MAfjp.png

C'est ce que je veux ressembler (de près): non -étiré tout aussi rembourré: http://i.imgur.com/vXTEy.png

Merci de votre aide. J'ai cherché la réponse pendant un certain temps et j'ai déjà tellement essayé.

Répondre

6

Ici, il est:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/back" 
    android:orientation="horizontal" 
    android:layout_height="50dip" 
    android:layout_width="fill_parent" 
    android:layout_alignParentBottom="true" 
    android:background="#000000" 
    style="@android:style/ButtonBar" 
    android:gravity="center" 
    > 
    <ImageButton 
    android:id="@+id/info_button" 
    android:background="@null" 
    android:src="@drawable/info" 
    android:layout_height="wrap_content" 
    android:layout_width="fill_parent" 
    android:layout_weight="1" 
    /> 
    <Button 
    android:id="@+id/wishlist_button" 
    android:text="@string/wish_label" 
    android:background="@null" 
    android:layout_height="wrap_content" 
    android:layout_width="fill_parent" 
    android:layout_weight="1" 
    android:textSize="15dip" 
    android:textColor="#b7b7b7"></Button> 
    <Button 
    android:id="@+id/buy_button" 
    android:text="@string/buy_label" 
    android:background="@null" 
    android:layout_height="wrap_content" 
    android:layout_width="fill_parent" 
    android:layout_weight="1" 
    android:textSize="15dip" 
    android:textColor="#b7b7b7"/> 
    <ImageButton 
    android:id="@+id/dislike_button" 
    android:background="@null" 
    android:src="@drawable/dislike_button" 
    android:layout_height="wrap_content" 
    android:layout_width="fill_parent" 
    android:layout_weight="1" 
    /> 
    <ImageButton 
    android:id="@+id/like_button" 
    android:background="@null" 
    android:src="@drawable/like_button" 
    android:layout_height="wrap_content" 
    android:layout_width="fill_parent" 
    android:layout_weight="1" 
    /> 
</LinearLayout> 

Je ne sais pas comment le style = "@ android: le style/ButtonBar" est réglé, donc si elle ne montre pas correctement essayez de l'enlever.

+0

Génial! D'une certaine manière, cela a fonctionné! Merci beaucoup. – jbenowitz

1

Vous pouvez ajouter un élément d'espacement entre chacune des images/boutons et affecter le poids de la disposition aux éléments d'espacement au lieu des images/boutons. Donc, il ressemblerait à quelque chose comme ceci:

<LinearLayout 
android:id="@+id/back" 
android:orientation="horizontal" 
android:layout_height="50dip" 
android:layout_width="fill_parent" 
android:layout_alignParentBottom="true" 
android:background="#000000" 
style="@android:style/ButtonBar" 
> 

    <ImageButton 
    android:id="@+id/info_button" 
    android:padding="20dp" 
    android:background="@drawable/info" 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content" 
    /> 
     <LinearLayout 
     android:layout_height="wrap_content"    
     android:layout_weight="1" /> 
    /> 
    <Button 
    android:id="@+id/wishlist_button" 
    android:text="@string/wish_label" 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content" 
    android:padding="20dp" 
    android:textSize="15dip" 
    android:textColor="#b7b7b7"></Button> 
     <LinearLayout 
     android:layout_height="wrap_content"    
     android:layout_weight="1" /> 
    <Button 
    android:id="@+id/buy_button" 
    android:text="@string/buy_label" 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content" 
    android:padding="20dp" 
    android:textSize="15dip" 
    android:textColor="#b7b7b7"/> 
     <LinearLayout 
     android:layout_height="wrap_content"    
     android:layout_weight="1" /> 
    <ImageButton 
    android:id="@+id/dislike_button" 
    android:padding="20dp" 
    android:background="@drawable/dislike_button" 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content" 
    /> 
     <LinearLayout 
     android:layout_height="wrap_content"    
     android:layout_weight="1" /> 
    <ImageButton 
    android:id="@+id/like_button" 
    android:padding="20dp" 
    android:background="@drawable/like_button" 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content" 
    /> 
</LinearLayout> 

Cela peut ne pas être la solution la plus élégante, car il ajoute plusieurs points de vue à votre mise en page, mais il a travaillé pour moi dans le passé.

+1

mauvaise solution IMO – BrainCrash

0

Vous devez envisager d'utiliser uniquement un bouton d'image avec des images de taille égale et de poids égal dans votre LinearLayout.

Cordialement, Stéphane

Questions connexes