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> 
  • ¿Cómo agregar TextView en medio de pulgar SeekBar?
  • OnSuggestionClick recrea mi actividad
  • Diferencia entre el relleno y el margen de una vista
  • Stream de video de autorrotación TextureView en Nexus4 (pero no en Galaxy S4)
  • View.getDrawingCache () sólo funciona una vez
  • Cómo programar mediante programación el orden z de vistas
  • Cómo obtener la entrada de searchview a textview
  • ¿Cómo mostrar una imagen que es más grande que las dimensiones de la pantalla del teléfono?
  • Problema de visibilidad de Android con la casilla de verificación
  • ¿Cómo usar la aleta de vista con tres diseños?
  • Android: ¿Cómo crear una vista personalizada modal?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.