Höhe von ListView füllt den ganzen Bildschirm, obwohl als wrap_content gesetzt

Ich habe diese ListView in einem 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> 

Die Liste wird programmgesteuert durch einen SimpleCursorAdapter aufgefüllt:

  • Wie installiere ich Android-API-Demo-App in mein Handy
  • Benutzerdefinierte PräferenzKategorie Überschriften
  • Einstürzen von CardView in RecyclerView beim Animieren
  • Finden von Punkten, die in einem Pfad in Android enthalten sind
  • Schließen Sie die Schublade programmatisch aus einer anderen Klasse
  • Mit Glide für Android, wie lade ich Bilder von Asset und Ressourcen
  •  adapter = new SimpleCursorAdapter(this, R.layout.list_row_search, mCursor, from, to); 

    List_row_search hat ein TableLayout mit zwei 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> 

    Jetzt, wenn die Liste belegt wird, nimmt die ListView den Lochbildschirm ein, auch wenn nur ein Element in der Datenbank gefunden wurde. Die HierarchyView in Eclipse zeigt ziemlich klar, dass die ListView diejenige ist, die den Bildschirm ausfüllt.

    Kannst du sagen, wo das Problem ist? Dank für Ihre Zeit!

  • Android Wifi direkten Mehrfachverbindung ad-hoc
  • Wie kann ich feststellen, dass CollapsingToolbar zusammengebrochen ist?
  • GestureDetector in libgdx
  • Sende benutzerdefiniertes Objekt mit Android native Binder
  • Sende Push-Benachrichtigung vom Server zum Android-Gerät in Java
  • Kann keine neue APK-Datei auf Android Play Store hochladen
  • 2 Solutions collect form web for “Höhe von ListView füllt den ganzen Bildschirm, obwohl als wrap_content gesetzt”

    Sie sollten wrap_content für die Höhe eines ListView . wrap_content bedeutet "mach mich so groß wie nötig, um alle meine Kinder zu halten." Wenn man bedenkt, dass Ihr Datensatz potenziell sehr groß sein könnte, sollte das wie eine ziemlich schlechte Idee klingen. Da du ein LinearLayout benutzt hast, gib dein ListView layout_height="0dp" und layout_weight="1" .

    Es ist okay, die ListView den Rest des Bildschirms zu übernehmen. Wenn es nur eine Zeile hat, wird es eine Zeile zeigen, keine große Sache. Es sei denn, du versuchst, etwas unterhalb der Liste zu zeigen, aber was ich dir schon gesagt habe, sollte das erreichen.

    Wenn oben nicht funktioniert, kannst du einfach RelativeLayout anstelle von linear verwenden und die ListView unterhalb des EditText .

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.