将ViewStub放在listView下面

时间:2013-03-20 18:20:41

标签: java android listview viewstub

我正在为Android 2.2(API级别8)进行编程,在我的主视图中,我以简化的方式对此进行了编写:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/relativeParent"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <TableRow
        android:id="@+id/tableRow2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >

      ...

    </TableRow>

    <ListView
        android:id="@+id/listview"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
    </ListView>

        <ViewStub
            android:id="@+id/includeIdForPlayerStub"
            android:layout_alignParentBottom="true"
            android:layout_alignBottom="@+id/listview"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:inflatedId="@+id/playerStubId"
            android:layout="@layout/player_stub" />

</RelativeLayout>

我想将ViewStub放在父级的底部,就在listview的正下方,但是现在它不起作用。 ViewStub添加的LinearLayout位于屏幕底部,但列表低于添加的内容,导致列表内容低于且不可见/可访问。同样可以看到添加内容下方的滚动条选址。

ViewStub的根视图是:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:gravity="bottom"
    android:layout_gravity="center_horizontal|bottom"
    android:background="@drawable/backrepeat"
    android:baselineAligned="false" >

</LinearLayout>

任何人都知道如何解决这个问题? 谢谢!

1 个答案:

答案 0 :(得分:0)

更改项目的顺序,以便首先定位ViewStub,然后将ListView设置为ViewStub上方:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/relativeParent"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <TableRow
        android:id="@+id/tableRow2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >

      ...

    </TableRow>

    <ViewStub
        android:id="@+id/includeIdForPlayerStub"
        android:layout_alignParentBottom="true"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:inflatedId="@+id/playerStubId"
        android:layout="@layout/player_stub" />

    <ListView
        android:id="@+id/listview"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@id/includeIdForPlayerStub"
        android:layout_below="@id/tableRow2">
    </ListView>

</RelativeLayout>