L'altezza di ListView riempie l'integer schermo, anche se impostato come wrap_content

ho questo ListView all'interno di 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> 

L'elenco è popolato in modo programmato da un SimpleCursorAdapter:

  • Come posso get lo stesso ProgressBar non definito come ICS con 2 cerchi rotanti?
  • Metodi di attività: onCreate () e onDestroy ()
  • Low FPS con android SurfaceView
  • Come select un object ListView dopo un lungo click?
  • Riprodurre file audio durante una chiamata, tuttavia la persona dall'altra parte non è in grado di ascoltarla
  • Come trovare e triggersre la modalità di debug USB su Nexus 4
  •  adapter = new SimpleCursorAdapter(this, R.layout.list_row_search, mCursor, from, to); 

    list_row_search ha un 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 l'elenco viene popolato, il ListView occupa lo schermo del foro, anche se solo un elemento è stato trovato nel database. L'HierarchyView in eclipse mostra abbastanza chiaro, che il ListView è quello che riempie lo schermo.

    Puoi sapere where è il problema? Grazie per il tuo tempo!

    2 Solutions collect form web for “L'altezza di ListView riempie l'integer schermo, anche se impostato come wrap_content”

    Non dovresti utilizzare wrap_content per l'altezza di un ListView . wrap_content significa "farmi tanto quanto necessario per tenere tutti i miei figli". Se consideri che il tuo set di dati potrebbe essere potenzialmente molto grande, dovrebbe sembrare una bella idea. Poiché state usando un LinearLayout, date il vostro ListView layout_height="0dp" e layout_weight="1" .

    È bene lasciare che il ListView prenda il resto dello schermo. Se ha solo una row, mostrerà una row, non è un grosso problema. A less che tu non stai cercando di mostrare qualcosa sotto l'elenco, ma quello che ti ho già detto sopra dovrebbe farlo.

    Se sopra non funziona, è ansible utilizzare RelativeLayout anziché lineare e mettere il ListView sotto il text EditText .

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.