2012-11-21 61 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