ho questo ListView all'interno di un LinearLayout:Altezza ListView riempie tutto lo schermo, anche se impostare come wrap_content
<?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>
L'elenco è popolato di programmazione da un SimpleCursorAdapter:
adapter = new SimpleCursorAdapter(this, R.layout.list_row_search, mCursor, from, to);
list_row_search ha una TableLayout con due 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>
Ora quando la lista viene popolata, la L istView occupa la schermata dei fori, anche se nel database è stato trovato solo un elemento. HierarchyView in eclissi mostra chiaramente che ListView è quello che riempie lo schermo.
Puoi dire, dove si trova il problema? Grazie per il tuo tempo!
Grazie per la risposta, ma la modifica dell'altezza da "wrap_content" a 0dp/weight = 1 comporta lo stesso comportamento: il ListView riempie l'intero schermo. In effetti stavo cercando di mostrare qualcosa sotto la lista, ma un'intera listview che mostrava solo un elemento (quando ne trovai uno solo) mi ha fatto mettere la lista sotto ... –
Puoi ancora dargli altezza = 0 e peso = 1. Aggiungi un'altra vista dopo di essa e LinearLayout assegnerà spazio per quell'elemento e assegnerà il resto a ListView. Se invece stai provando ad avere un oggetto che è fissato in fondo alla lista ma scorre con il contenuto della lista, devi guardare 'ListView.addFooterView()' – Karakuri