标题,内容和RelativeLayout中没有alignParentBottom =“true”的页脚

时间:2011-12-07 14:43:40

标签: android relativelayout

我有以下设置来获得带有页眉和页脚的布局。由于活动显示在对话框中,我想将顶部元素的高度设置为“wrap_content”。关于android文档,只要你将alignParentBottm =“true”设置为子元素,这就不可能了。

在另一个问题中,有人建议使用LinearLayout并以编程方式设置maxHeight。有没有其他方法可以避免alignParentBottom =“true”?

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

    <LinearLayout
        android:id="@+id/LNL_TOP"
        android:layout_width="match_parent"
        android:layout_height="60dip"
    android:layout_alignParentTop="true"> 
    </LinearLayout>

    <LinearLayout
        android:id="@+id/LNL_BOTTOM"
        android:layout_width="match_parent"
        android:layout_height="60dip"
        android:layout_alignParentBottom="true">
    </LinearLayout>

    <LinearLayout
        android:id="@+id/LNL_CONTENT"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/LNL_TOP"
    android:layout_above="@+id/LNL_BOTTOM">

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

    </LinearLayout>   
 </RelativeLayout>

以下是目前的图像,我希望布局包装内容并避免列表下的空白区域。

enter image description here

2 个答案:

答案 0 :(得分:4)

使用垂直LinearLayout代替:

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

    <TextView 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="HEAD"/>
    <!--LinearLayout containing the list here, to go with your posted code, 
it would also work to just have the list outside the layout.-->
    <LinearLayout 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:layout_weight="1">
        <ListView 
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>
    </LinearLayout>
    <TextView 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="FOOT"/>
</LinearLayout>

有了这个,身体就会随着内容的增长而增长,直到没有更多的空间。然后它将开始在页脚后面(虽然这不应该是一个问题,因为你使用ListView的内容,所以视图将扩展到最大大小,然后停止,滚动将开始工作)。 / p>

答案 1 :(得分:0)

由于你说这是一个对话框窗口,从某种意义上说,如果你愿意,你可以无限期地扩展对话框的高度。可以简单地使用底部元素上的layout_marginTop将其推到您想要的最低位置,而不是与视图的底部对齐。如果您将LNL_CONTENT的高度设置为match_parent,那么它将填充其间的任何空间。