ListView 不会低于线性布局中的按钮

ListView not going below the buttons in linear layout

我正在尝试获取此布局

http://i.imgur.com/5tn9M6r.png

但出于某种原因,ListView 一直被放在第三个按钮的一侧,因此离开了屏幕

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"
android:weightSum="1.0">

<Button
    android:layout_weight=".33"
    android:layout_width="0dip"
    android:layout_height="wrap_content"
    android:text="Add"
    android:onClick="addPerson"
    android:id="@+id/add" />


<Button
    android:layout_weight=".33"
    android:layout_width="0dip"
    android:layout_height="wrap_content"
    android:text="Edit"
    android:id="@+id/edit" />

<Button
    android:layout_weight=".33"
    android:layout_width="0dip"
    android:layout_height="wrap_content"
    android:text="Delete"
    android:id="@+id/delete" />

您需要定义两个 LinearLayouts,一个是垂直方向(用于 3 个按钮和列表视图),另一个是水平方向(用于按钮):

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"
    android:weightSum="1.0"
    android:orientation="vertical">
<LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="horizontal">

    <Button
        android:layout_weight=".33"
        android:layout_width="0dip"
        android:layout_height="wrap_content"
        android:text="Add"
        android:onClick="addPerson"
        android:id="@+id/add" />


    <Button
        android:layout_weight=".33"
        android:layout_width="0dip"
        android:layout_height="wrap_content"
        android:text="Edit"
        android:id="@+id/edit" />

    <Button
        android:layout_weight=".33"
        android:layout_width="0dip"
        android:layout_height="wrap_content"
        android:text="Delete"
        android:id="@+id/delete" />
</LinearLayout>
<ListView
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   etc...etc
/>
</LinearLayout>

使用 layout_weight 这样它就可以尽可能多地下降:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:weightSum="1.0"
tools:context=".MainActivity">

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal">

    <Button
        android:id="@+id/add"
        android:layout_width="0dip"
        android:layout_height="wrap_content"
        android:layout_weight=".33"
        android:onClick="addPerson"
        android:text="Add" />


    <Button
        android:id="@+id/edit"
        android:layout_width="0dip"
        android:layout_height="wrap_content"
        android:layout_weight=".33"
        android:text="Edit" />

    <Button
        android:id="@+id/delete"
        android:layout_width="0dip"
        android:layout_height="wrap_content"
        android:layout_weight=".33"
        android:text="Delete" />
</LinearLayout>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1">


    <ListView
        android:layout_width="match_parent"
        android:layout_height="match_parent" />


</LinearLayout>