让视图适合

时间:2011-02-28 17:18:04

标签: android android-layout android-listview android-linearlayout

我有一个带有LinearLayout的main.xml,里面有三个项目,LinearLayout,ListView和LinearLayout。我希望ListView尽可能大,同时保持底部LinearLayout始终显示而不是收缩或从屏幕上掉下来。

我尝试过制作ListView高度fillparent,但是底部的LinearLayout没有显示,与wrapcontent一样,因为ListView有很多内容。

当我将ListView设置为一个设置大小,比如300dp时,我在底部LinearLayout下面有空格。我尝试通过使顶级LinearLayout gravity = fill来解决这个问题,但这没有帮助。

另外,根据我尝试使用的android,底部的LinearLayout将从屏幕上掉落,或者缩小。 如果它是相关的,顶层LinearLayout设置为高度的fillparent。 我的目标是保持顶部和底部的LinearLayout包装他们的内容,中间的ListView填充剩下的...任何建议? 提前感谢您的努力!

1 个答案:

答案 0 :(得分:3)

我相信您只需将android:layout_weight="1"添加到ListView,ListView设置为fill_parent的高度,并将两个LinearLayouts设置为wrap_content。无论如何,我通常更喜欢使用RelativeLayout。您可以指定标题以对齐到屏幕顶部,页脚对齐到底部,ListView用于填充其间的空间,如下所示:

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
    <LinearLayout
        android:id="@+id/header"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        >
        //...insert stuff here
    </LinearLayout>

    <LinearLayout
        android:id="@+id/footer"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        >
        //...insert stuff here
    </LinearLayout>

    <ListView
        android:id="@+id/listview"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_above="@id/footer"
        android:layout_below="@id/header"
        />
</RelativeLayout>