<TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/ItemIntr" android:layout_toRightOf="@+id/ItemImage" android:layout_below="@+id/ItemTitle" android:layout_above="@+id/ItemText" android:textSize="20sp"/>
出现错误java.lang.IllegalStateException: Circular dependencies cannot exist in RelativeLayout
经查找发现,是相对布局不支持这种依赖方式(为了清晰,我仅列出了出错的控件,控件间的关系间文末附上的正确代码)
于是,将android:layout_above="@+id/ItemText"删掉,程序正确运行
但是,将 android:layout_below="@+id/ItemTitle"删掉,程序依旧报此错误。
思考了一下,所谓“依赖循环”:
声明A的时候:A在B上面
声明B的时候:B在A下面
这就造成了所谓循环依赖,计算机无法识别你的布局要求,导致程序出现错误。
解释程序不报错,循环依赖是没必要的,同时也会使程序变得非常复杂,所以在以后自己开发程序的时候一定要注意这一点。
下面是正确的代码:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="fill_parent" android:layout_width="fill_parent"> <ImageView android:layout_alignParentLeft="true" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/ItemImage"/> <TextView android:id="@+id/ItemTitle" android:layout_toRightOf="@+id/ItemImage" android:layout_height="wrap_content" android:layout_width="fill_parent" android:textSize="20sp"/> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/ItemIntr" android:layout_toRightOf="@+id/ItemImage" android:layout_below="@+id/ItemTitle" android:textSize="20sp"/> <TextView android:id="@+id/ItemText" android:layout_height="wrap_content" android:layout_width="fill_parent" android:layout_toRightOf="@+id/ItemImage" android:layout_below="@+id/ItemIntr"/> </RelativeLayout>