RelativeLayout中不存在循环依赖

时间:2012-11-21 13:58:57

标签: android listview relativelayout

我需要在LinearLayout和Relative Layout之间显示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>

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

提前致谢。

1 个答案:

答案 0 :(得分: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"

  • 将外部容器切换为LinearLayout而不是RelativeLayout,然后切换为使用android:layout_weightListView分配额外空间。