0

我需要在 LinearLayout 和相对布局之间显示 ListView。我希望 ListView 的高度根据屏幕尺寸显示。为此,我放置了 layout_height="wrap_content",并且我使用了 layout_above 和 layout_belowm 但这会返回:“RelativeLayout 中不能存在循环依赖”。这是我的布局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/firstLayout"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#FFFFFF"
    android:orientation="vertical" >

    <LinearLayout
        android:id="@+id/roadmap_linearlayout"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:gravity="center"
        android:orientation="horizontal" >
    ........
    </LinearLayout>

    <ListView
        android:id="@+id/listvisit"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/roadmap_linearlayout"
        android:layout_above="@+id/relativelayout_listpostovisit"
        android:layout_marginTop="10dp"
        android:layout_marginLeft="15dp"
        android:layout_marginRight="15dp"
        android:cacheColorHint="@android:color/transparent"
        android:divider="@drawable/listview_divider"
        android:dividerHeight="2dp"
        android:scrollbars="vertical" />

    <RelativeLayout
        android:id="@+id/relativelayout_listpostovisit"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/listvisit"
        android:layout_marginTop="10dp"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:background="#FFFFFF"
        android:orientation="vertical"
        android:layout_centerHorizontal="true"
        android:layout_alignParentBottom="true">

       .........

    </RelativeLayout>

</RelativeLayout>

知道如何解决这个问题吗?

提前致谢。

4

1 回答 1

2

我希望 ListView 的高度根据屏幕尺寸显示。

我将把它翻译为“我想要ListView填充可用的屏幕空间”。

为此,我把 layout_height="wrap_content"

您不能可靠地android:layout_height="wrap_content"ListView.

我使用 layout_above 和 layout_belowm 但这会返回:“RelativeLayout 中不能存在循环依赖”

那是因为您的外部RelativeLayout配置relativelayout_listpostovisit取决于 的位置,listvisit而 的位置listvisit取决于 的位置relativelayout_listpostovisit。那是行不通的。

任何一个:

  • 更改relativelayout_listpostovisit、删除android:layout_below="@id/listvisit"和添加android:layout_alignParentBottom="true",或

  • 将外部容器切换为 aLinearLayout而不是 aRelativeLayout并切换到 usingandroid:layout_weight以将额外空间分配给ListView.

于 2012-11-21T14:03:25.613 回答