XML的循环依赖关系

时间:2016-11-03 18:18:57

标签: android android-layout circular-dependency

我是一名新的Android开发人员。当我运行我的应用程序时,我收到此错误:“渲染渲染期间引发的问题异常:在RelativeLayout(详细信息)中不存在循环依赖项” 任何人都可以帮我解决我的XML代码吗? 为什么我出现循环依赖错误?

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/gradient" >

    <View android:id="@+id/box3"
        android:layout_width="290dp"
        android:layout_height="match_parent"
        android:background="#80000000"
        android:alpha="0.3"
        android:paddingBottom="10dp"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true" />

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/relativeLayout"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true">

        <View android:id="@+id/rectangle_at_the_top"
            android:layout_width="match_parent"
            android:layout_height="45dp"
            android:visibility="visible"
            android:background="@color/gold"
            android:layout_alignParentTop="true"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true" />

        <RelativeLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_marginTop="30dp"
            android:id="@+id/radioButtons"
            android:layout_marginLeft="50dp"
            android:layout_centerInParent="true">


        </RelativeLayout>



        <Button
            android:typeface ="sans"
            android:background="@drawable/roundcornor_button"
            android:layout_width="300dp"
            android:textAllCaps="false"
            android:layout_height="wrap_content"
            android:text="Submit"
            android:textColor="@color/black"
            android:id="@+id/submitButton"
            android:backgroundTint="@color/gold"
            android:textSize="20dp"
            android:layout_below="@+id/radioGroup"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="31dp" />


        <Button
            android:text=""
            android:layout_height="50dp"
            android:layout_width="127dp"
            android:id="@+id/button6"
            android:textSize="6pt"
            android:textColor="@color/white"
            android:background="#545454"
            android:layout_alignParentBottom="true"
            android:layout_alignParentRight="true"
            android:layout_alignParentEnd="true" />
        <Button
            android:text=""
            android:layout_height="50dp"
            android:layout_width="127dp"
            android:id="@+id/budgetbutton"
            android:textColor="@color/white"
            android:background="#545454"
            android:layout_alignParentBottom="true"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true" />
        <Button
            android:layout_weight=".30"
            android:text="Sign Up"
            android:layout_height="50dp"
            android:layout_width="125dp"
            android:id="@+id/middlebutton"
            android:background="#545454"
            android:textColor="@color/white"
            android:layout_alignParentBottom="true"
            android:layout_centerHorizontal="true"
            android:layout_marginBottom="56dp" />
        <RadioGroup
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/radioGroup"
            android:layout_marginBottom="67dp"
            android:layout_above="@+id/submitButton"
            android:layout_alignLeft="@+id/radioButtons"
            android:layout_alignStart="@+id/radioButtons">

            <RadioButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/fivePercent"
                android:text="Yes"
                android:textSize="25dp"
                android:checked="false"
                android:textColor="@color/white"
                android:buttonTint="@color/white" />

            <RadioButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@id/somewhat"
                android:text="Somewhat"
                android:textSize="25dp"
                android:layout_below="@+id/fivePercent"
                android:layout_marginTop="35dp"
                android:textColor="@color/white"
                android:buttonTint="@color/white"/>

            <RadioButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/tenPercent"
                android:text="No"
                android:textSize="25dp"
                android:layout_below="@+id/fivePercent"
                android:layout_marginTop="35dp"
                android:textColor="@color/white"
                android:buttonTint="@color/white"/>

        </RadioGroup>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Are"
            android:textSize="33dp"
            android:textColor="@color/white"
            android:gravity="center"
            android:id="@+id/question"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="84dp"
            android:fontFamily="sans-serif-light" />
    </RelativeLayout>
</RelativeLayout>

2 个答案:

答案 0 :(得分:1)

看起来你的XML代码中有一个循环引用。

标识为submitButton的按钮引用radioGroup中的android:layout_below="@+id/radioGroup"radioGroup引用submitButton中的android:layout_above="@+id/submitButton"

删除其中任何一个,你就可以了。

答案 1 :(得分:0)

<RelativeLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_marginTop="30dp"
    android:id="@+id/radioButtons"
    android:layout_marginLeft="50dp"
    android:layout_centerInParent="true">


</RelativeLayout>

您有android:layout_alignParentLeft="true"android:layout_centerInParent="true"在一起并且相互冲突

您想要android:layout_centerHorizontal="true"吗?

此外,根据RelativeLayout的名称,您似乎想要将单选按钮放在该布局中。所以你可能想做

...
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_marginTop="30dp"
android:id="@+id/radioButtons"
android:layout_marginLeft="50dp"
android:layout_centerHorizontal="true">

    <Button
        android:typeface ="sans"
        android:background="@drawable/roundcornor_button"
        android:layout_width="300dp"
        android:textAllCaps="false"
        android:layout_height="wrap_content"
        android:text="Submit"
        android:textColor="@color/black"
        android:id="@+id/submitButton"
        android:backgroundTint="@color/gold"
        android:textSize="20dp"
        android:layout_below="@+id/radioGroup"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="31dp" />


    <Button
        android:text=""
        android:layout_height="50dp"
        android:layout_width="127dp"
        android:id="@+id/button6"
        android:textSize="6pt"
        android:textColor="@color/white"
        android:background="#545454"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true" />

    <Button
        android:text=""
        android:layout_height="50dp"
        android:layout_width="127dp"
        android:id="@+id/budgetbutton"
        android:textColor="@color/white"
        android:background="#545454"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />

    <Button
        android:layout_weight=".30"
        android:text="Sign Up"
        android:layout_height="50dp"
        android:layout_width="125dp"
        android:id="@+id/middlebutton"
        android:background="#545454"
        android:textColor="@color/white"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="56dp" />

    <RadioGroup
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/radioGroup"
        android:layout_marginBottom="67dp"
        android:layout_above="@+id/submitButton"
        android:layout_alignLeft="@+id/radioButtons"
        android:layout_alignStart="@+id/radioButtons">

        <RadioButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/fivePercent"
            android:text="Yes"
            android:textSize="25dp"
            android:checked="false"
            android:textColor="@color/white"
            android:buttonTint="@color/white" />

        <RadioButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@id/somewhat"
            android:text="Somewhat"
            android:textSize="25dp"
            android:layout_below="@+id/fivePercent"
            android:layout_marginTop="35dp"
            android:textColor="@color/white"
            android:buttonTint="@color/white"/>

        <RadioButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/tenPercent"
            android:text="No"
            android:textSize="25dp"
            android:layout_below="@+id/fivePercent"
            android:layout_marginTop="35dp"
            android:textColor="@color/white"
            android:buttonTint="@color/white"/>

    </RadioGroup>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Are"
        android:textSize="33dp"
        android:textColor="@color/white"
        android:gravity="center"
        android:id="@+id/question"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="84dp"
        android:fontFamily="sans-serif-light" />

</RelativeLayout>

另一方面,您只能使用

android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"

您用于<View> WITHIN RelativeLayout