ListView不会在线性布局中的按钮下方

时间:2015-07-18 18:43:55

标签: android listview android-linearlayout

我试图获得此布局

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

但由于某种原因,ListView不断放在第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">

<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" />

2 个答案:

答案 0 :(得分:1)

您需要定义两个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>

答案 1 :(得分:0)

使用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>