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>
4

2 に答える 2

2

別のボタンの上にあるボタンは、2番目のボタンが最初のボタンの下にあることを意味するため、両方を指定する必要はありません。

削除する:

android:layout_below="@id/playBtn"

また

 android:layout_below="@id/settingsBtn"

android:layout_below="@id/rulesBtn" 
于 2013-02-28T18:31:48.037 に答える
1

RelativeLayout上、下、toLeftOf、toRightOfなどを使用します。論理的には、「XはYの左側、YはXの右側」と言うことができます。それは理にかなっていますが、一方がどこで終わり、もう一方がどこから始まるかを正確に示しているわけではありません。これを行うと、パーサーは値のレイアウト方法を知りません。つまり、「XはYの左側にある」と言うだけです。次に、最初にYをレイアウトし(Xを考慮せずに構成されているスペースをすべて使用します)、その左側にXを配置します。

簡単な答え:layout_aboveまたはlayout_belowを使用して関係を定義しますが、両方を定義することはできません。

于 2013-02-28T18:34:28.443 に答える