¿Por qué estos botones están mal alineados en un TableLayout?

Estoy usando un diseño de mesa para organizar algunos botones. Siempre y cuando use la misma fuente para todas las etiquetas que están correctamente alineados en cada fila.

Para algunos botones me gustaría usar iconos de una fuente ttf personalizada. Cuando utilizo un icono de este tipo, el botón se coloca un poco más alto, así:

Ligero desplazamiento

(Esta imagen se amplía para hacer que el problema sea más evidente.)

Tomé medidas – los botones parecen ser de la misma altura, sin importar la fuente usada.

¿Por qué los botones no están alineados correctamente? ¿Alguien tiene una sugerencia para alinearlos?

Gracias.

Siguiendo el consejo de CommonsWare (gracias por las respuestas rápidas!), He intentado esto:

final LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); layoutParams.gravity = Gravity.CENTER_VERTICAL; row.setLayoutParams(layoutParams); 

Esto no funcionó. Intentará el siguiente comentario de alineación de base.

Agregue el siguiente atributo a su TableRow :

 android:baselineAligned="false" 

De forma predeterminada, las líneas de las etiquetas del botón están alineadas verticalmente, lo que causa la compensación que experimenta.

  • ResourceNotFoundException cómo depurar?
  • Cómo deshabilitar detrás de ver haga clic en evento Framelayout
  • Cómo hacer que listFooter no se puede hacer clic
  • Android: ¿Cómo puedo implementar tutorial de primera vez como Go Launcher en mi aplicación?
  • ¿Cómo usar RecyclerView de acuerdo con la pantalla del dispositivo?
  • ¿Cómo detener la barra de navegación de ActionBar para mostrar como un hilandero cuando llega demasiado tiempo?
  • Inflación de diseño en control personalizado - ¿cómo?
  • animateLayoutChanges no animar la eliminación de la flecha hacia atrás desde la barra de herramientas
  • Com.android.layoutlib.bridge.MockView no se puede convertir en android.view.ViewGroup
  • ¿Cómo puedo utilizar un compuesto dibujable en lugar de un LinearLayout que contiene un ImageView y un TextView
  • Agregue dos puntos al teclado InputType.TYPE_CLASS_NUMBER
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.