¿Por qué los botones multilínea en gridlayout tienen margen superior extraño?

Tengo este diseño:

<LinearLayout android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#FF2c3e50"> <FrameLayout android:layout_width="300px" android:layout_height="5px" android:background="#FF4a80c2" > </FrameLayout> <HorizontalScrollView android:layout_width="wrap_content" android:layout_height="match_parent" android:overScrollMode="never"> <GridLayout android:layout_width="match_parent" android:layout_height="match_parent" android:rowCount="2" android:orientation="vertical" android:padding="50px"> <Button android:layout_marginBottom="20px" android:layout_marginRight="20px" android:lines="2" android:textColor="#fff3f3f3" android:layout_width="165px" android:layout_height="165px" android:text="zrušit bez zápisu" android:gravity="center" android:textStyle="bold" android:padding="10px" android:textSize="24px" android:background="@drawable/cancel_button"/> <Button android:layout_marginBottom="20px" android:layout_marginRight="20px" android:lines="2" android:textColor="#fff3f3f3" android:layout_width="165px" android:layout_height="165px" android:text="odchod" android:gravity="center" android:textStyle="bold" android:textSize="24px" android:padding="10px" android:background="@drawable/type_button_default"/> <Button android:layout_marginBottom="20px" android:lines="2" android:layout_marginRight="20px" android:textColor="#fff3f3f3" android:layout_width="165px" android:layout_height="165px" android:text="nemoc" android:padding="10px" android:gravity="center" android:textStyle="bold" android:textSize="24px" android:background="@drawable/type_button"/> <Button android:layout_marginBottom="20px" android:layout_marginRight="20px" android:lines="2" android:textColor="#fff3f3f3" android:layout_width="165px" android:layout_height="165px" android:text="lékař" android:padding="10px" android:gravity="center" android:textStyle="bold" android:textSize="24px" android:background="@drawable/type_button"/> <Button android:layout_marginBottom="20px" android:layout_marginRight="20px" android:lines="2" android:textColor="#fff3f3f3" android:layout_width="165px" android:layout_height="165px" android:padding="10px" android:text="pracovní cesta" android:gravity="center" android:textStyle="bold" android:textSize="24px" android:background="@drawable/type_button"/> <Button android:layout_marginBottom="20px" android:lines="2" android:layout_marginRight="20px" android:textColor="#fff3f3f3" android:layout_width="165px" android:layout_height="165px" android:padding="10px" android:text="školení" android:gravity="center" android:textStyle="bold" android:textSize="24px" android:background="@drawable/type_button"/> <Button android:layout_marginBottom="20px" android:lines="2" android:layout_marginRight="20px" android:textColor="#fff3f3f3" android:layout_width="165px" android:layout_height="165px" android:padding="10px" android:text="neplacené volno" android:gravity="center" android:textStyle="bold" android:textSize="24px" android:background="@drawable/type_button"/> <Button android:layout_marginBottom="20px" android:lines="2" android:layout_marginRight="20px" android:textColor="#fff3f3f3" android:layout_width="165px" android:layout_height="165px" android:text="volno" android:padding="10px" android:gravity="center" android:textStyle="bold" android:textSize="24px" android:background="@drawable/type_button"/> <Button android:layout_marginBottom="20px" android:lines="2" android:layout_marginRight="20px" android:textColor="#fff3f3f3" android:layout_width="165px" android:layout_height="165px" android:padding="10px" android:text="náhradní volno" android:gravity="center" android:textStyle="bold" android:textSize="24px" android:background="@drawable/type_button"/> </GridLayout> </HorizontalScrollView> </LinearLayout> 

Cuando tengo botones de varias líneas en el diseño de la cuadrícula, que están extrañamente posicionado. Mira la imagen adjunta.

Introduzca aquí la descripción de la imagen

¿Puede alguien decir lo que sucede aquí?

Encontré donde está el problema. Todos los botones deben tener layout_gravity también. Todo lo que se necesita es añadir android:layout_gravity="center" a todos los botones.

Tuve el mismo problema dentro de un LinearLayout. Un colega mío señaló que este es Android tratando de alinear la línea de base del texto. Para desactivar este comportamiento, utilice android:baselineAligned="false" en el diseño padre.

  • Android: dibujar fondo sin GPU OverDraw como WhatsApp
  • En Android EditText, ¿cómo eliminar las sugerencias de la barra de teclado suave?
  • Barra de herramientas que se superpone debajo de la barra de estado
  • ¿Convenciones de nombres de archivos de diseño?
  • ¿Qué parte de Android se encarga de elegir un perfil de recurso correcto?
  • ¿Cómo puedo cambiar el diseño de xml incluido en otro diseño en código java?
  • ¿Cuándo debo obtener la vista de ancho en el fragmento
  • Android: cómo escalar un diseño con tamaño de pantalla
  • Definir elementos de desbordamiento de barras de acción
  • Alineación de fragmentos con RelativeLayout
  • Pregunta de la interfaz de usuario de Android. Guía de implementación
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.