0

如何ListView在顶部显示布局并Buttons在底部显示多个布局(如图所示)

在此处输入图像描述

下面是我尝试过的代码(问题是按钮与列表重叠,在按钮后面有些可见,虽然我使用了重量总和,但 3 个按钮的大小不相等):

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:weightSum="3" >

        <Button
            android:id="@+id/bDone"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Done" />

        <Button
            android:id="@+id/bCancel"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Cancel" />

        <Button
            android:id="@+id/bSelAll"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Select All" />
    </LinearLayout>

    <ListView
        android:id="@android:id/list"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true" >
    </ListView>

</RelativeLayout>
4

2 回答 2

7

我所做的基本上是做 2 个线性布局,1 个用于列表,1 个用于按钮。还设置 weight = 1 和 width = 0 将使它们大小相等 此代码对我有用:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<LinearLayout android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_marginTop="5dip"  
    android:layout_marginBottom="5dip"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_above="@+id/footerlayout"
    android:id="@+id/listviewlayout">
    <ListView
        android:id="@+id/list"               
        android:layout_width="fill_parent"               
        android:layout_height="wrap_content"  
        android:layout_weight="1">
    </ListView> 
 </LinearLayout>
 <LinearLayout android:id="@+id/footerlayout"
        android:layout_marginTop="3dip"
        android:layout_height="45dip"
        android:orientation="horizontal" 
        android:layout_width="fill_parent" 
        android:gravity="center"
        android:layout_alignParentBottom="true">
        <Button
            android:id="@+id/bDone" 
            android:text="Done" 
            android:layout_width="0dip"
            android:layout_height="40dip"
            android:layout_weight="1">
        </Button>   
        <Button
            android:id="@+id/bCancel" 
            android:text="Cancel"
            android:layout_width="0dip"
            android:layout_height="40dip"
            android:layout_weight="1"   
            >
        </Button>   
        <Button
            android:id="@+id/bSelAll" 
            android:text="Select All"
            android:layout_width="0dip"
            android:layout_height="40dip"
            android:layout_weight="1"
            >
        </Button>   
    </LinearLayout>
</RelativeLayout>
于 2012-07-09T21:37:41.873 回答
0

添加到LinearLayoutid 属性并将其添加到ListView

android:layout_above="@id/linear_layout_id"

要使按钮的属性大小相同,请更改此

android:layout_width="wrap_content"

对此

android:layout_width="match_parent"
于 2012-07-09T21:17:07.060 回答