Los niños en el diseño lineal con igual relleno

Actualmente estoy diseñando una ButtonBar con 5 botones (todos ellos serán ImageButtons, pero por ahora, sólo 3 de ellos son). Este es mi primer proyecto androide, así que estoy aprendiendo a medida que avanzamos. Estoy tratando de ponderar cada botón por igual, sin escalarlos (tienen igual relleno en vez de ancho igual). Este es mi código hasta ahora:

<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: estirado ponderado: http://i.imgur.com/MAfjp.png

Esto es lo que quiero que parezca (de cerca): no estirado igualmente acolchado: http://i.imgur.com/vXTEy.png

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

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 / ButtonBar" se fija, así que si no se muestra correctamente intente quitarlo.

Puede agregar un elemento espaciador entre cada una de las imágenes / botones y asignar el layout_weight a los elementos espaciadores en lugar de las imágenes / botones. Así que se verí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 ha funcionado para mí en el pasado.

Usted debe considerar el uso de sólo botón de imagen con imágenes de igual tamaño con el mismo peso dentro de su LinearLayout.

Saludos, Stéphane

  • ¿Alternativas a xml desarrollando el diseño de aplicaciones para Android?
  • ¿Cómo puedo usar los iconos nativos de Android en mi nueva aplicación?
  • LinearLayout minHeight no funciona con weigth = "1"
  • Alineación Vertical la gravedad no responde
  • Android: ¿Cómo puedo hacer que las vistas de texto floten a la izquierda?
  • Cómo hacer que RatingBar muestre cinco estrellas
  • ViewPager utilizando archivos xml para las vistas
  • Ocultar vistas declarativamente basado en el tamaño de pantalla en Android
  • Creación de diseño de inicio de sesión como en la aplicación de facebook para Android
  • Dynamic SAX Parser para UTF-8 o ISO-8859-1 XML codificado
  • Padding no funciona en Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.