La altura de ListView llena toda la pantalla, aunque se define como wrap_content

Tengo este ListView dentro de un LinearLayout:

<?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="wrap_content" android:orientation="vertical" > <TextView .../> <EditText /> ... </EditText> <ListView android:id="@+id/words_list" android:layout_width="match_parent" android:layout_height="wrap_content" > </ListView> </LinearLayout> 

La lista se llena de forma programática por un SimpleCursorAdapter:

 adapter = new SimpleCursorAdapter(this, R.layout.list_row_search, mCursor, from, to); 

List_row_search tiene un TableLayout con dos TableRows:

 <?xml version="1.0" encoding="utf-8"?> <TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/TableLayout1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <View android:layout_height="1dip" android:background="#FF33B5E5" /> <TableRow android:id="@+id/tableRow1" android:layout_height="wrap_content" > <TextView android:id="@+id/list_lesson" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:padding="1dip" android:textSize="12sp" /> <TextView android:id="@+id/list_name" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="5.25" android:padding="1dip" android:paddingRight="10dp" android:textSize="18sp" android:textStyle="bold" /> <TextView android:id="@+id/list_flex" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="12.5" android:padding="1dip" android:paddingRight="10dp" /> <TextView android:id="@+id/list_rom" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="6.25" android:padding="1dip" android:paddingRight="10dp" /> </TableRow> <View android:layout_height="0.1dip" android:background="#404040" /> <TableRow android:id="@+id/tableRow2" android:layout_height="wrap_content" > <TextView android:id="@+id/list_related" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="2" android:paddingRight="10dp" android:textStyle="italic" /> <TextView android:id="@+id/list_ant" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:paddingRight="10dp" /> <TextView android:id="@+id/list_engl" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:paddingRight="10dp" /> </TableRow> <View android:layout_height="1dip" android:background="#FF33B5E5" /> </TableLayout> 

Ahora, cuando la lista se llena, el ListView ocupa la pantalla de agujero, aunque sólo se encontró un elemento en la base de datos. El HierarchyView en eclipse muestra bastante claro, que el ListView es el que llena la pantalla.

¿Puedes decir, dónde está el problema? ¡Gracias por tu tiempo!

No debe utilizar wrap_content para la altura de un ListView . wrap_content significa "hacerme tan grande como sea necesario para mantener a todos mis hijos". Cuando usted considera que su conjunto de datos podría ser potencialmente muy grande, que debería sonar como una idea bastante mala. Puesto que usted está utilizando un LinearLayout, dé su layout_height="0dp" ListView layout_height="0dp" y layout_weight="1" .

Está bien dejar que el ListView tome el resto de la pantalla. Si sólo tiene una fila, se mostrará una fila, no es gran cosa. A menos que estés tratando de mostrar algo debajo de la lista, pero lo que te dije arriba debería lograr eso.

Si arriba no funciona, sólo puede usar RelativeLayout lugar de lineal y poner el ListView debajo de EditText .

  • Android - Elementos de la interfaz de usuario desactivados
  • GridLayout vs TableLayout
  • Cuadrícula con bordes
  • implementar android: stretchColumns = "*" programatically en Android
  • Multiline TextView en Android?
  • Cómo rellenar el diseño de la tabla con la cadena JSON
  • Emulador Android no Desplácese hacia abajo
  • Android TableLayout altura no llena toda la pantalla
  • Mesa Android con borde redondo
  • Cómo establecer layout_span a través de código
  • Crear TableLayout mediante programación
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.