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:
- Desplácese hasta la última línea de TableLayout dentro de ScrollView
- Android TableLayout: preserva los anchos de las columnas entre las diferentes tablas
- NullPointerException lanzado en Eclipse al intentar abrir la vista de Android XML?
- Vista de lista expandible con diseño de tabla en android
- Android: Tablerow mezclado con columnas y texto multilínea
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!
- Establecer ancho igual de columnas en el diseño de la tabla en Android
- Android TableLayout Ancho
- Android: dos problemas con Tablerow + TextView en Tablelayout
- TableLayout Vs Recycler Ver?
- Listview con diseño de tabla
- Obtener RowCount total para TableLayout en Android
- Rellene TableLayout con android: layout_weight de forma programática
- Android TableRow - ¿Cómo agregar Ver dinámicamente a cierto postion?
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 webview cargar Javascript local
- ¿Cómo contar el número de notificaciones y mostrar un solo icono en Android?