GridLayout empuja a sus hijos y desbordamiento cuando se le da fill_parent para la altura

Como parece que el GridLayout siempre empujar a sus hijos a la disposición correspondiente a sus necesidades. Por ejemplo, la siguiente declaración:

<?xml version="1.0" encoding="utf-8"?> <GridLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:columnCount="3" android:orientation="vertical" android:rowCount="4" android:useDefaultMargins="true" > ... <ImageView android:id="@+id/main_image" android:layout_column="1" android:layout_columnSpan="2" android:layout_row="3" android:scaleType="fitStart" /> </GridLayout> 

El GridLayout declara fill_parent y como tal esperaría que no se desborde. El GridLayout debe tomar el tamaño del padre que en este caso es la ventana (altura completa). Sin embargo, en el visor de jerarquía, GridLayout se establece como Wrap_content para vertical y horizontal.

Como tal, el ImageView (que es una imagen grande) o cualquier vista de texto se empujará para ajustarse a sí mismo y, como tal, desbordará el contenedor.

Esto se puede ver en el visor de jerarquía donde la vista de cuadrícula del contenedor se ajusta al elemento principal:

Vista de cuadrícula de contenedores

Mientras que el desbordamiento de la vista de la imagen

Vista de imagen

Al leer la documentación, entiendo que hay una necesidad de establecer la gravedad. Por lo que puedo probar, he utilizado todo tipo de opciones de gravedad y opciones de escala de imagen sin mucho efecto. Eliminar los márgenes con useDefaultMargins="false" cambia el desbordamiento de diseño que conduce el problema hacia gridlayout.

Mi pregunta sigue:

  • ¿Es esto un error o estoy usando el GridLayout incorrectamente
  • ¿Cómo puedo obligar a los niños de GridLayout a encajar su contenedor ya llenar los espacios restantes

One Solution collect form web for “GridLayout empuja a sus hijos y desbordamiento cuando se le da fill_parent para la altura”

El truco en otros diseños es darle al primer elemento un androide: layout_weight = "1.0" y nada a los otros elementos. ¿Por qué funciona? No tengo ni idea, pero lo hace. Aquí está un XML simple que exhibió un ImageView, un TextView y un botón. Sin el parámetro layout_weight asignado a ImageView, el texto y el botón se desplazaron hacia abajo.

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@color/white" android:orientation="vertical" android:keepScreenOn = "true" > <ImageView android:id="@+id/imageView_surprise" android:layout_width="wrap_content" android:layout_height="0dip" android:scaleType="centerInside" android:contentDescription="@string/accessibility_imageView_surprise" android:layout_weight="1.0" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:layout_gravity="bottom" > <TextView android:id="@+id/textView_message" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textColor="@color/black" android:textSize="24sp" android:gravity="center_horizontal" /> <Button android:id="@+id/button_share" style="@style/button_text" android:layout_width="fill_parent" android:layout_height="wrap_content" /> </LinearLayout> </LinearLayout> 
  • Falta el puerto reenviado en el Visor de jerarquía: Uso de Android Studio
  • Android - Creación de listview con encabezados flotantes
  • Los botones deben ser tan anchos como los
  • Android Ver agregar niño
  • Convertir vista a mapa de bits en Android
  • ¿Corrección de Android EditText para el texto?
  • Cómo obtener la entrada de searchview a textview
  • En Android: ¿Cómo definir la animación adecuada para maximizar una vista mientras se minimizan otros 2 al mismo tiempo?
  • Tamaño del artículo de menú personalizado y tamaño de texto en la vista de navegación
  • Obtener el id de una vista como String en el evento onClick
  • Animar el cambio de color de fondo de la vista en Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.