Los componentes invisibles todavía ocupan espacio

Así pues, tengo esta actividad que se parece a esto:

Http://i.imgur.com/UzexgEA.jpg

Como puede ver, tiene un botón, una lista y un botón.

Si se cumplen ciertas condiciones, quiero ocultar los dos botones sólo mostrar la lista, pero como se puede ver en la siguiente imagen, los botones siguen ocupando espacio:

Http://i.imgur.com/OyLIfSk.jpg

Así que mi pregunta, ¿qué puedo hacer para ampliar la lista para sacar ese espacio?

Aquí está mi diseño para los botones y la lista:

<?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:orientation="vertical" > <Button android:id="@+id/findSelected" android:layout_width="match_parent" android:layout_height="wrap_content" android:onClick="registrarAsistencia" android:text="Registrar Asistencia" /> <ListView android:id="@+id/listaAlumnos" android:layout_width="fill_parent" android:layout_height="376dp" android:layout_weight="2.29" /> <Button android:id="@+id/btnChecarBoxes" android:layout_width="match_parent" android:layout_height="wrap_content" android:onClick="seleccionarTodosNinguno" android:text="Seleccionar / Deseleccionar todo" /> </LinearLayout> 

Y aquí está el diseño del contenido de la lista:

 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="match_parent" android:orientation="vertical" > <LinearLayout android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:orientation="vertical" > <TextView android:id="@+id/rowTextView" android:layout_width="wrap_content" android:layout_height="match_parent" android:padding="10dp" android:textSize="16sp" android:textStyle="bold"/> <TextView android:id="@+id/rowTextView2" android:layout_width="wrap_content" android:layout_height="match_parent" android:padding="10dp" android:textSize="16sp" android:textStyle="italic"/> </LinearLayout> <CheckBox android:id="@+id/CheckBox01" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:focusable="false" android:padding="10dp" /> </RelativeLayout> 

3 Solutions collect form web for “Los componentes invisibles todavía ocupan espacio”

No realice los botones View.INVISIBLE . Haga los botones View.GONE . Hay tres estados de visibilidad:

  • Visible (normal)
  • Invisible (píxeles no dibujados, pero todavía ocupa espacio)
  • Ido (no incluido en la representación)

Utilizar

 android:layout_height="0dp" android:layout_weight="1" 

Además de la respuesta de @ CommonsWare

Debe utilizar un diseño que se adapte bien a todos los tamaños de pantalla. Si le das un diseño de una altura fija como android:layout_height="376dp" se verá bien sólo en el dispositivo (o emulador) que está probando. Lo que tienes que hacer es asegurarse de que tu listview ocupa todo (y sólo) el espacio que dejan tus botones.

Echa un vistazo a este artículo y esta respuesta para comprender mejor los pesos de la presentación.

Para ocultar tu widget

  yourEditText.setVisibility(View.GONE) 

Por la visibilidad de su widget

  yourEditText.setVisibility(View.VISIBLE) 
  • Android ¿cómo puedo establecer un porcentaje de relleno / margen para EditText tiene 10% de margen en ambos lados?
  • Menús horizontales
  • Vista de desplazamiento horizontal: ¿Es realmente una solución?
  • Cómo desplazarse por programación a la parte inferior de una vista de reciclaje?
  • ¿Cuál es la diferencia entre match_parent y fill_parent?
  • Hacer que un botón Datepicker tenga un aspecto similar al de la aplicación de calendario de Google
  • Cargar la barra de progreso en android?
  • ¿Cómo quitar la pantalla blanca mientras se carga la aplicación de Android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.