10

私は LinearLayout 内にこの ListView を持っています:

<?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>

List は、SimpleCursorAdapter によってプログラムによって設定されます。

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

list_row_search には、2 つの TableRows を持つ TableLayout があります。

<?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>

リストが読み込まれると、データベースで要素が 1 つしか見つからなかった場合でも、ListView が穴の画面を占有します。Eclipse の HierarchyView は、ListView が画面を埋めるものであることを明確に示しています。

どこに問題があるか分かりますか?御時間ありがとうございます!

4

2 に答える 2

14

wrap_contentの高さには使用しないでくださいListViewwrap_content「私のすべての子供たちを収容するのに必要なだけ私を大きくしてください」という意味です。データセットが潜在的に非常に大きくなる可能性があることを考えると、それはかなり悪い考えのように聞こえるはずです。LinearLayout を使用しているため、ListViewlayout_height="0dp"layout_weight="1".

ListView画面の残りの部分はに任せても問題ありません。1行しかない場合は、1行しか表示されません。大したことではありません。リストの下に何かを表示しようとしている場合を除きますが、上記で説明したことはそれを達成するはずです.

于 2013-03-18T15:11:30.907 に答える
0

上記が機能しない場合はRelativeLayout、線形の代わりに使用して、 のListView下にを配置できますEditText

于 2013-03-18T15:16:46.000 に答える