1

下面的代码适用于带有页脚的 ListView,我面临的问题是 ListView 中的较低条目与页脚重叠。那么您能否提出任何解决方案(因为我尝试了很多,并且每种情况下我都得到相同的重叠结果)或其他方式来做到这一点。提前致谢。为了以防万一,我还发布了页脚的代码。

<LinearLayout android:id="@+id/homeParentLayout"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">


    <ListView android:layout_height="wrap_content"
        android:layout_width="fill_parent" android:id="@+id/listV_main"
        android:listSelector="@android:color/transparent"/>

    <include android:id="@+id/footer" android:layout_height="wrap_content"
        layout="@layout/mymenu" android:layout_width="fill_parent"
        android:layout_centerHorizontal="true"
        android:layout_alignParentBottom="true">
    </include>

</RelativeLayout>
</LinearLayout>

mymenu.xml 的代码

<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" 
android:layout_height="wrap_content"
android:orientation="horizontal" 
android:gravity="center" 
android:layout_gravity="bottom">

<TableLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_gravity="center_horizontal"
    android:gravity="center"
    android:orientation="vertical">

    <TableRow 
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:gravity="center_horizontal">
            <TextView
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:text=" "
                android:gravity="center"/>
            <ImageView 
                android:id="@+id/imgSetting" 
                android:src="@drawable/settings_gear_icon_256"
                android:layout_width="60dip"
                android:layout_height="60dip" 
                android:layout_marginLeft="10sp"
                android:clickable="true"/>

            <TextView
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:text=" "
                android:gravity="center"/>


            <TextView
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:text=" "
                android:gravity="center"/>
            <ImageView 
                android:id="@+id/imgLogin" 
                android:layout_width="60dip"
                android:src="@drawable/login_lock_256" 
                android:clickable="true"
                android:layout_height="60dip" />

            <TextView
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:text=" "
                android:gravity="center"/>


            <TextView
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:text=" "
                android:gravity="center"/>
    </TableRow>
</TableLayout>
</LinearLayout>             
4

2 回答 2

2

使用这样的相对布局:声明相对布局,然后将页脚声明为第一个元素。这些属性是页脚的重要属性:

android:layout_alignParentBottom="true"
android:id="@+id/footer_id"

然后用这个属性声明你的 listView:

android:layout_above="@id/footer_id"

那应该这样做。

于 2012-05-31T18:36:49.970 回答
0

尽管 aRelativeLayout通常为您的布局设计提供了更大的灵活性,但在像这样相当简单的布局的情况下,您可以使用权重以类似的方式使用LinearLayout.

请注意,以下最显着的变化是在ListView声明中。'0dp' 的高度和 '1' 的重量将使ListView页脚(垂直)占据尽可能多的空间,而不会将页脚推离底部。实际上,这将使页脚底部对齐。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/homeParentLayout"
    android:orientation="vertical" android:layout_width="fill_parent"
    android:layout_height="fill_parent">

    <ListView android:layout_height="0dp" android:layout_weight="1"
        android:layout_width="fill_parent" android:id="@+id/listV_main"
        android:listSelector="@android:color/transparent" />

    <include android:id="@+id/footer" android:layout_height="wrap_content"
        layout="@layout/mymenu" android:layout_width="fill_parent"
        android:layout_gravity="center_horizontal" />

</LinearLayout>

我还冒昧地从玩RelativeLayout.

于 2012-05-31T19:26:18.887 回答