Reputation: 960
Hey I am trying to make a notification for my file uploading notification. This is my XML: but it keeps giving me the error: Circular dependencies cannot exist in RelativeLayout. What am I doing wrong? I dont see anything wrong with it? I was also trying to make it look similar to the browser downloader
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="5dp">
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/left"
android:layout_toLeftOf="@+id/right">
<ImageView
android:id="@+id/status_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
/>
<TextView
android:id="@+id/progress_text"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/status_icon"
android:text="0%"
/>
</RelativeLayout>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/right"
android:layout_toRightOf="@+id/left">
<TextView
android:id="@+id/status_text"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
/>
<ProgressBar
android:id="@+id/status_progress"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/status_text"
android:progressDrawable="@android:drawable/progress_horizontal"
android:indeterminate="false"
android:indeterminateOnly="false"
/>
</RelativeLayout>
</RelativeLayout>
Upvotes: 4
Views: 5691
Reputation: 3155
You try to refer two layouts each other in your layout. A part of codes shows as below,
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<RelativeLayout
android:id="@+id/left"
android:layout_toLeftOf="@+id/right" />
<RelativeLayout
android:id="@+id/right"
android:layout_toRightOf="@+id/left" />
</RelativeLayout>
It will occur circular dependency exception.
How to fix?
Set gravity type of one layout, Other layout refers this.
For this case, remove android:layout_toRightOf="@+id/left"
Because default layout gravity is left, then remove this line. It will be fine.
Have fun @.@
Upvotes: 0
Reputation: 6366
Remove the line android:layout_toLeftOf="@+id/right". You are declaring left to be to the left of right, and then right to be to the right of left. Its a circular dependency because it does not know which element to lay out first.
Upvotes: 3
Reputation: 11439
RelativeLayout "left" is trying to lay itself out based on the location of RelativeLayout "right". This cannot be done, because as the exception says, it's circular. How can you park a car based on the parking of another car if that car is still moving?
Based on your xml file, I recommend you use LinearLayouts. There really isn't anything that you are doing here that can't be solved with two LL's and the parent RelativeLayout.
Upvotes: 9