Search code examples
androidandroid-layoutcircular-dependency

Circular dependencies for XML


I am a new android developer. When I run my app, I got this error :"rendering Problems Exception raised during rendering: Circular dependencies cannot exist in RelativeLayout (Details)" Can anyone help me with my XML code? Why I got Circular dependencies error?

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

Solution

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

    You have android:layout_alignParentLeft="true" and android:layout_centerInParent="true" together and they are conflicting each other

    Did you want android:layout_centerHorizontal="true" instead?

    Also, based on the name of that RelativeLayout, it looks like you wanted to put radio buttons in that layout. so you might want to do

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

    On the other note, you can only use

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

    that you used for <View> WITHIN RelativeLayout