今天使用Scrollview 和HorizontalScrollview 嵌套显示时,使用如下布局:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<HorizontalScrollView
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:id="@+id/textview1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="滚动视图"
android:textSize="30dp" />
<ImageView
android:id="@+id/imageview1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/textview1"
android:src="@drawable/item1" />
<TextView
android:id="@+id/textview2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/imageview1"
android:text="垂直和水平滚动"
android:textSize="30dp" />
<ImageView
<span style="color:#ff6666;">android:id="@+id/imageview2"
</span> android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/textview1"
android:src="@drawable/item2" />
<TextView
android:id="@+id/textview3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/imageview2"
android:text="垂直和水平滚动"
android:textSize="30dp" />
<ImageView
<span style="color:#ff6666;"> android:id="@+id/imageview2"</span>
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/textview3"
android:src="@drawable/item3" />
</RelativeLayout>
</HorizontalScrollView>
</ScrollView>
爆出了这样的异常,java.lang.IllegalStateException: Circular dependencies cannot exist in RelativeLayout。
原因就是在RelativeLayout布局中重现了重复的view ID名称,且出现 imageview2 ,textview3,imageview2出现了循环依赖。
解决方案: 将最后一个ImageView的id修改成 imageview3. 避免在RelativeLayout中控件循环依赖。