为什么我收到CircularDependencyException?

时间:2012-02-14 21:47:05

标签: android relativelayout

嘿我正在尝试通知我的文件上传通知。这是我的XML:但它一直给我错误:RelativeLayout中不存在循环依赖。我究竟做错了什么?我没有看到它有什么问题吗?我也试图使它看起来类似于浏览器下载器

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

3 个答案:

答案 0 :(得分:9)

RelativeLayout“left”试图根据RelativeLayout“right”的位置进行自我介绍。这是不可能的,因为例外情况说,它是循环的。如果那辆车还在移动的话,你如何根据另一辆车的停车停车呢?

根据您的xml文件,我建议您使用LinearLayout s。你在这里做的事情确实没有用两个LL和父亲的RelativeLayout来解决。

答案 1 :(得分:3)

删除行android:layout_toLeftOf =“@ + id / right”。你声明左边是右边的,然后右边是左边的右边。它是一个循环依赖,因为它不知道首先布置哪个元素。

答案 2 :(得分:0)

您尝试在布局中互相引用两个布局。代码的一部分显示如下,

toggleMen('menu');

会发生循环依赖异常。

如何解决?

设置一个布局的重力类型,其他布局指的是这个。

对于这种情况,请删除 android:layout_toRightOf =&#34; @ + id / left&#34;

由于保留了默认布局重力,因此请删除此行。没关系。

玩得开心@。@