Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


LinearLayout – verticalmente no alinear

Tengo un problema con LinearLayout en Android. Tengo cuatro botones. Cada botón tiene un tamaño fijo, pero el texto puede variar en longitud.

Mi problema es que no están alineados con la parte superior de cada uno. Se ve que se alinean con la parte superior del texto dentro de cada botton que cambian dependiendo del número de línea que hay dentro del botón (Ver foto).

Además, quiero seguir usando LinearLayout como eventualmente utilizará código agregará botones basados ​​en datos de una base de datos.

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent"> <Button android:text="Line1 Line2" android:textSize="30dp" android:layout_width="160dp" android:layout_height="120dp"></Button> <Button android:text="Line1 Line2 Line3" android:textSize="30dp" android:layout_width="160dp" android:layout_height="120dp"></Button> <Button android:text="Line1" android:textSize="30dp" android:layout_width="160dp" android:layout_height="120dp"></Button> <Button android:text="Line1" android:textSize="30dp" android:layout_width="160dp" android:layout_height="120dp"></Button> </LinearLayout> </LinearLayout> 

Http://i.imgur.com/0Kj8h.png

EDIT: RESPUESTA (No puedo contestar mi propia pregunta):

Ok, acabo de encontrar la respuesta por mí mismo. Tienes que añadir android: baselineAligned = "false" a LinearLayout o cualquier otro control similar que pueda mostrar el mismo comportamiento.

También puede solucionar esto en el diseñador de interfaz de usuario mediante el botón denominado "Alternar alineación de línea de base".

Así que el código resultante es:

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:baselineAligned="false" android:layout_width="match_parent" android:layout_height="match_parent"> <Button android:text="Line1 Line2" android:textSize="30dp" android:layout_width="160dp" android:layout_height="120dp"></Button> <Button android:text="Line1 Line2 Line3" android:textSize="30dp" android:layout_width="160dp" android:layout_height="120dp"></Button> <Button android:text="Line1" android:textSize="30dp" android:layout_width="160dp" android:layout_height="120dp"></Button> <Button android:text="Line1" android:textSize="30dp" android:layout_width="160dp" android:layout_height="120dp"></Button> </LinearLayout> </LinearLayout> 

  • ¿Cómo comprueba si un botón está habilitado o no en Android?
  • Establecer la altura de la fila ListView en el código
  • Cómo extender un botón de Android y utilizar un archivo de diseño xml
  • Botones que faltan en AlertDialog | Android 7.0 (Nexus 5x)
  • ¿Cómo puedo agregar sombra a ImageButton?
  • Estado del botón de botón
  • ¿Es posible especificar el borde en el botón android?
  • Cambiar el color de fondo del botón de la barra de acción cuando se presiona
  • 3 Solutions collect form web for “LinearLayout – verticalmente no alinear”

    Su mejor utilizar RelativeLayout para tal tipo de alineación, como el concepto de RelativeLayout dice que él "referencia" de un control

    Bueno, su segundo diseño lineal es lo que está creando el problema que supongo que para u, sólo eliminar que

    Puede utilizar TableLayout en lugar de su segundo LinearLayout.And agregar un TableRow dentro de TableLayout y en la fila agregar cuatro botones

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.