Android 中的 RelativeLayout 中不能存在 Circular dependencies 的原因是什么?
What causes Circular dependencies cannot exist in RelativeLayout in Android?
嗨
我的布局中出现此错误,看起来没有问题,但在测试设备中尝试打开布局时出现此错误:
java.lang.IllegalStateException: Circular dependencies cannot exist in RelativeLayout
at android.widget.RelativeLayout$DependencyGraph.getSortedViews(RelativeLayout.java:1704)
at android.widget.RelativeLayout.sortChildren(RelativeLayout.java:382)
at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:390)
at android.view.View.measure(View.java:17951)
at android.widget.ScrollView.measureChildWithMargins(ScrollView.java:1269)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:436)
at android.widget.ScrollView.onMeasure(ScrollView.java:338)
at android.view.View.measure(View.java:17951) .......
这是我的XML:Click here
是什么导致了“Circular dependencies cannot exist in RelativeLayout
”问题?
Circular dependencies cannot exist in RelativeLayout
问题是布局参数中存在循环引用引起的。
例如,您有一个按钮 A layout_below 到按钮 B,现在您不能像按钮 B align_right 到按钮 A 那样给按钮 A 到按钮 B 的任何对齐参考。
布局中的以下代码导致了循环依赖,
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="Weight"
android:id="@+id/weig"
android:layout_marginEnd="40dp"
android:layout_above="@+id/weightn"
android:layout_alignParentEnd="true"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="46"
android:id="@+id/weightn"
android:layout_below="@+id/weig"
android:layout_alignEnd="@+id/weig"
android:layout_marginRight="7dp"
android:textColor="#ffffff" />
原因:
第一个文本视图(weig): android:layout_above="@+id/weightn"
第二个文本视图(weightn): android:layout_below="@+id/weig"
嗨
我的布局中出现此错误,看起来没有问题,但在测试设备中尝试打开布局时出现此错误:
java.lang.IllegalStateException: Circular dependencies cannot exist in RelativeLayout
at android.widget.RelativeLayout$DependencyGraph.getSortedViews(RelativeLayout.java:1704)
at android.widget.RelativeLayout.sortChildren(RelativeLayout.java:382)
at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:390)
at android.view.View.measure(View.java:17951)
at android.widget.ScrollView.measureChildWithMargins(ScrollView.java:1269)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:436)
at android.widget.ScrollView.onMeasure(ScrollView.java:338)
at android.view.View.measure(View.java:17951) .......
这是我的XML:Click here
是什么导致了“Circular dependencies cannot exist in RelativeLayout
”问题?
Circular dependencies cannot exist in RelativeLayout
问题是布局参数中存在循环引用引起的。
例如,您有一个按钮 A layout_below 到按钮 B,现在您不能像按钮 B align_right 到按钮 A 那样给按钮 A 到按钮 B 的任何对齐参考。
布局中的以下代码导致了循环依赖,
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="Weight"
android:id="@+id/weig"
android:layout_marginEnd="40dp"
android:layout_above="@+id/weightn"
android:layout_alignParentEnd="true"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="46"
android:id="@+id/weightn"
android:layout_below="@+id/weig"
android:layout_alignEnd="@+id/weig"
android:layout_marginRight="7dp"
android:textColor="#ffffff" />
原因:
第一个文本视图(weig): android:layout_above="@+id/weightn"
第二个文本视图(weightn): android:layout_below="@+id/weig"