2013-02-28 57 views
2

我想在相對佈局中使用自定義按鈕,但在runtimr我正面臨這種相對佈局的循環依賴錯誤,有人可以指導我嗎?當我使用線性佈局(代碼更改後),它工作正常。相對佈局中的循環依賴錯誤。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="@drawable/background" 
    android:gravity="center_horizontal" 
    android:orientation="vertical" > 

<ImageView 
    android:id="@+id/logo" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:src="@drawable/logo2" /> 

<Button 
    android:id="@+id/playBtn" 
    android:layout_width="80dip" 
    android:layout_height="wrap_content" 
    android:layout_above="@+id/settingsBtn" 
    android:layout_below="@id/logo" 
    android:background="@drawable/button_selector" 
    android:paddingBottom="5dip" 
    android:paddingTop="5dip" 
    android:text="Play" 
    android:textColor="#ffffff" /> 

<Button 
    android:id="@id/settingsBtn" 
    android:layout_width="80dip" 
    android:layout_height="wrap_content" 
    android:layout_above="@+id/rulesBtn" 
    android:layout_below="@id/playBtn" 
    android:background="@drawable/button_selector" 
    android:paddingBottom="5dip" 
    android:paddingTop="5dip" 
    android:text="Settings" 
    android:textColor="#ffffff" /> 

<Button 
    android:id="@id/rulesBtn" 
    android:layout_width="80dip" 
    android:layout_height="wrap_content" 
    android:layout_above="@+id/exitBtn" 
    android:layout_below="@id/settingsBtn" 
    android:background="@drawable/button_selector" 
    android:paddingBottom="5dip" 
    android:paddingTop="5dip" 
    android:text="Rules" 
    android:textColor="#ffffff" /> 

<Button 
    android:id="@id/exitBtn" 
    android:layout_width="80dip" 
    android:layout_height="wrap_content" 
    android:layout_below="@id/rulesBtn" 
    android:background="@drawable/button_selector" 
    android:paddingBottom="5dip" 
    android:paddingTop="5dip" 
    android:text="Exit" 
    android:textColor="#ffffff" /> 
</RelativeLayout> 

回答

2

由於一個按鈕,上面是另一種暗示,二是下面的第一個,你不需要同時指定。

卸下:

android:layout_below="@id/playBtn" 

android:layout_below="@id/settingsBtn" 

android:layout_below="@id/rulesBtn" 
+0

謝謝,它解決了我的問題, – sarnabtech 2013-02-28 18:54:06

+0

不客氣! – DigCamara 2013-02-28 18:54:49

1

RelativeLayout使用之類的東西上面,下面,toLeftOf,toRightOf。你可以邏輯地說「X是Y的左邊; Y是X的右邊」。它是有道理的,但它並沒有確切地說明一個結束和另一個開始的地方。當你這樣做時,解析器不知道如何佈置值。所以,你只是說「X是Y的左邊」。然後它會首先佈局Y(不考慮X而採取配置的任何空間),並將X放在它的左邊。

簡答題:使用layout_abovelayout_below來定義關係,但從來都不是。