2011-06-22 15 views
5

Actualmente estoy diseñando un ButtonBar con 5 botones (todos serán ImageButtons, pero por ahora, solo 3 de ellos). Este es mi primer proyecto de Android, así que estoy aprendiendo sobre la marcha. Estoy tratando de ponderar cada botón por igual, sin escalarlos (tienen el mismo relleno en lugar del mismo ancho). Este es mi código hasta ahora:Niños en diseño lineal con el mismo relleno

<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" 
    /> 

Esto es lo que parece ahora: extendió ponderada: http://i.imgur.com/MAfjp.png

Esto es lo que quiero que se vea como (de cerca): no -estirada igualmente acolchado: http://i.imgur.com/vXTEy.png

Gracias por ayudar. He estado buscando la respuesta por un tiempo y ya he intentado tanto.

Respuesta

6

Aquí 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> 

No sé cómo el estilo = "@ android: estilo/barra de botones" está ajustado, por lo que si no se muestra correctamente intente eliminarlo.

+0

¡Impresionante! De alguna manera, ¡funcionó! Muchas gracias. – jbenowitz

1

Puede agregar un elemento espaciador entre cada una de las imágenes/botones y asignarle el diseño_peso a los elementos espaciadores en lugar de las imágenes/botones. Por lo tanto, sería algo como esto:

<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> 

esto puede no ser la solución más elegante, ya que añade varias vistas a su diseño, pero que ha funcionado para mí en el pasado.

+1

mala solución IMO – BrainCrash

0

Debería considerar usar solo botón de imagen con imágenes de igual tamaño con el mismo peso dentro de su LinearLayout.

Saludos, Stéphane

Cuestiones relacionadas