是什么导致Android中的RelativeLayout中不存在循环依赖?

时间:2016-09-03 07:06:51

标签: android android-layout relativelayout circular-dependency

您好

我的布局中出现此错误,看起来没有任何问题,但在尝试在测试设备中打开布局时会出现这种情况:

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

的原因

2 个答案:

答案 0 :(得分:1)

  

RelativeLayout

中不存在循环依赖关系

布局参数中存在循环引用时会导致问题。

例如,您有一个按钮A layout_below到按钮B,现在您不能将按钮A的任何对齐参考提供给按钮B,如按钮B align_right到按钮A。

答案 1 :(得分:1)

布局中的代码导致循环依赖,

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

第二个文字视图(权重): android:layout_below =“@ + id / weig”