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


Horizontalmente las vistas de centro dentro de Android GridLayout

Estamos escribiendo una aplicación dirigida a ICS + y creemos que un GridLayout es el mejor paradigma de diseño, pero parece que se ha escrito muy poco sobre él y estamos teniendo algunos problemas de alineación.

<GridLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/row_background" android:rowCount="1" android:columnCount="3" android:layout_width="match_parent" android:layout_height="match_parent" android:useDefaultMargins="true" android:background="@drawable/list_item_bg"> <ImageView android:id="@+id/visibilityIcon" android:layout_row="0" android:layout_column="0" android:src="@drawable/visibility_icon" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal"/> <ImageView android:id="@+id/windIcon" android:layout_row="0" android:layout_column="1" android:src="@drawable/wind_icon" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal"/> <ImageView android:id="@+id/crosswindIcon" android:layout_row="0" android:layout_column="2" android:src="@drawable/cloud_icon" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal"/> </GridLayout> 

Sin embargo, los iconos de la izquierda 2 permanecen alineados a la izquierda y el centro de la derecha se centra con el espacio restante.

Esencialmente lo que necesitamos hacer es especificar el tamaño de cada columna para ser 1/3 (ya que 3 columnas) del tamaño total de la pantalla. Pensé que esto es lo que GridLayout hizo, pero parece que 'wrap_content' hace que este comportamiento (tiene sentido), pero 'match_parent' hace que la primera columna llene toda la pantalla, en lugar de llenar su celda que es el comportamiento que esperaba.

Parece que hemos intentado todas las combinaciones de gravedad, gravedad de diseño, etc., pero bien fundamentalmente estamos haciendo algo mal, o hemos encontrado una limitación de GridLayout.

¡Gracias por tu ayuda!

  • Pregunta teórica: cargar el archivo XML-Layout externo en Android
  • Android ListView con botón no es seleccionable (clicable)
  • Shape Drawable Tamaño no funciona
  • Utilice símbolo especial (<,>) en diseño de diseño en Android
  • Match_parent no funciona como se esperaba
  • Android (cambio de cadena en código java)
  • ¿Por qué no puedo crear el borde redondo para un rincón específico?
  • Botón bajo ListView no visible en android
  • One Solution collect form web for “Horizontalmente las vistas de centro dentro de Android GridLayout”

    Sólo una fila y una columna se permite crecer en un GridLayout, y que es el que tiene gravedad a lo largo de ese eje. Si más de una fila o columna especifica la gravedad sólo uno lo conseguirá (si recuerdo que es el "último" uno). Elija otro diseño o escriba el suyo propio. Si sólo desea una fila con iconos igualmente divididos, puede utilizar un LinearLayout donde los anchos de los componentes son 0px y el peso son todos iguales, por ejemplo, 1.

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