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"