2012-11-21 39 views
0

我需要在LinearLayout和Relative Layout之间显示ListView。我希望根据屏幕尺寸显示ListView的高度。为此,我把layout_height =“wrap_content”和我用户layout_above和layout_belowm,但是这会返回这个:“在RelativeLayout中不存在循环依赖”。 这里是我的布局: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

尝试删除'RelativeLayout'中的'android:layout_below =“@ id/listvisit”'行。 – yDelouis

回答

2

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

我打算将其翻译为“我希望ListView填充可用的屏幕空间”。

对于这一点,我把layout_height = “WRAP_CONTENT”

ListView你不能可靠地使用android:layout_height="wrap_content"

和我的用户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_weight分配额外的空间,以ListView

+0

谢谢。它解决了我的问题。 – Gabrielle