Android将所有布局元素保留在屏幕上

时间:2013-12-30 09:14:20

标签: android android-layout listview android-fragments

我在RelativeLayout中有一个片段。这个片段包含一个ListView和一个Button,并加载并显示在另一个布局下面。该片段并不总是可见,并且ListView中的数据每次显示时都会更改。

除了一件事,一切都很好。如果屏幕空间太小,ListView高度会缩小(正确)但Button不会显示。它被砍掉了。我在整个片段布局周围都有一个边框,可以一直显示,但如果没有足够的空间,按钮就会消失,边框会正确地显示在ListView周围。

如何将我的按钮保留在屏幕上并缩小ListView?我的片段布局是:

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/quickFilterLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#66000000">

    <ImageView
        android:id="@+id/quickFilterArrow"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/quick_filter_top_arrow"
        android:contentDescription="quick filter up arrow" />

    <RelativeLayout
        android:id="@+id/quickFilterMainContainer"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="15dp"
        android:layout_marginRight="15dp"
        android:layout_below="@id/quickFilterArrow"
        android:background="@drawable/quick_filters_background" >

        <ListView
            android:id="@+id/quickFilterListView"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:divider="#C8C7CC"
            android:dividerHeight="1dp" />

        <Button
            android:id="@+id/closeQuickFilterButton"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@id/quickFilterListView"
            android:background="@drawable/quick_filter_close_button_selector"
            android:text="Close" />
    </RelativeLayout>
</RelativeLayout>

1 个答案:

答案 0 :(得分:1)

怎么样:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >

     <Button
        android:id="@+id/button"
        android:layout_width="match_parent"
        android:layout_height="40dp"
        android:layout_alignParentBottom="true"/>

    <ListView
        android:id="@+id/listview"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_above="@id/button" />

</RelativeLayout>

这使得按钮占据40dp而listview占用其他所有内容。