问题描述
我正在尝试创建自定义布局,但我正在努力使其正常工作,我收到错误消息相对布局中不能存在圆形依赖项"
Hi im trying to create a custom layout but i'm struggling to get it to work properly i'm getting an error "circluar dependencies cannot exist in Relative layout"
这是我试图在布局方面实现的目标,然后用数据填充每个文本字段.
heres what im trying to acheive in termas of layout and then fill each text field with data.
date number
name score - score name
scorers scorers
这是我的尝试
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:paddingTop="30dp"
android:paddingBottom="30dp" >
<TextView
android:id="@+id/TextView04"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_below="@+id/HomeScore"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
android:text="-"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="@color/blue"
android:textStyle="bold" />
<TextView
android:id="@+id/AwayTeam"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/TextView04"
android:layout_alignBottom="@+id/TextView04"
android:layout_alignParentRight="true"
android:layout_marginRight="22dp"
android:gravity="left"
android:text="Small Text"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="@color/blue"
android:textStyle="bold" />
<TextView
android:id="@+id/HomeTeam"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/TextView04"
android:layout_alignBottom="@+id/TextView04"
android:layout_toRightOf="@+id/HomeScore"
android:gravity="right"
android:text="Small Text"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="@color/blue"
android:textStyle="bold" />
<TextView
android:id="@+id/Attendance"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignRight="@+id/AwayTeam"
android:layout_alignTop="@+id/HomeScore"
android:text="Small Text"
android:textAppearance="?android:attr/textAppearanceSmall" />
<TextView
android:id="@+id/Division"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/textView1"
android:layout_toRightOf="@+id/HomeScore"
android:text="Small Text"
android:textAppearance="?android:attr/textAppearanceSmall" />
<TextView
android:id="@+id/AwayScore"
android:layout_width="20dp"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/TextView04"
android:layout_alignBottom="@+id/TextView04"
android:layout_toRightOf="@+id/TextView04"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="@color/blue"
android:textStyle="bold" />
<TextView
android:id="@+id/HomeScore"
android:layout_width="20dp"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/TextView04"
android:layout_marginRight="15dp"
android:layout_toLeftOf="@+id/TextView04"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="@color/blue"
android:textStyle="bold" />
</RelativeLayout>
这里是错误
06-06 14:42:44.348: E/AndroidRuntime(1167): java.lang.IllegalStateException: Circular dependencies cannot exist in RelativeLayout
06-06 14:42:44.348: E/AndroidRuntime(1167): at android.widget.RelativeLayout$DependencyGraph.getSortedViews(RelativeLayout.java:1272)
06-06 14:42:44.348: E/AndroidRuntime(1167): at android.widget.RelativeLayout.sortChildren(RelativeLayout.java:281)
06-06 14:42:44.348: E/AndroidRuntime(1167): at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:303)
06-06 14:42:44.348: E/AndroidRuntime(1167): at android.view.View.measure(View.java:8526)
06-06 14:42:44.348: E/AndroidRuntime(1167): at android.widget.ListView.measureScrapChild(ListView.java:1153)
06-06 14:42:44.348: E/AndroidRuntime(1167): at android.widget.ListView.measureHeightOfChildren(ListView.java:1266)
06-06 14:42:44.348: E/AndroidRuntime(1167): at android.widget.ListView.onMeasure(ListView.java:1127)
06-06 14:42:44.348: E/AndroidRuntime(1167): at android.view.View.measure(View.java:8526)
06-06 14:42:44.348: E/AndroidRuntime(1167): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3224)
06-06 14:42:44.348: E/AndroidRuntime(1167): at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1017)
06-06 14:42:44.348: E/AndroidRuntime(1167): at android.widget.TableLayout.measureChildBeforeLayout(TableLayout.java:456)
06-06 14:42:44.348: E/AndroidRuntime(1167): at android.widget.LinearLayout.measureVertical(LinearLayout.java:386)
推荐答案
好吧,这里有几个问题:
Well, you have a few problems here:
TextView04
声明了android:layout_below="@+id/HomeScore"
和android:layout_centerVertical="true"
,其中冲突
TextView04
declaresandroid:layout_below="@+id/HomeScore"
andandroid:layout_centerVertical="true"
, which conflict
AwayTeam
声明 android:layout_alignBaseline="@+id/TextView04"
和 android:layout_alignBottom="@+id/TextView04"代码>,其中冲突
AwayTeam
declares android:layout_alignBaseline="@+id/TextView04"
and android:layout_alignBottom="@+id/TextView04"
, which conflict
HomeTeam
声明 android:layout_alignBaseline="@+id/TextView04"
和 android:layout_alignBottom="@+id/TextView04"代码>,其中冲突
HomeTeam
declares android:layout_alignBaseline="@+id/TextView04"
and android:layout_alignBottom="@+id/TextView04"
, which conflict
AwayScore
声明 android:layout_alignBaseline="@+id/TextView04"
和 android:layout_alignBottom="@+id/TextView04"代码>,其中冲突
AwayScore
declares android:layout_alignBaseline="@+id/TextView04"
and android:layout_alignBottom="@+id/TextView04"
, which conflict
正如 Samir 指出的那样,您的循环依赖中至少有一个位于 TextView04
和 HomeScore
之间.TextView04
说它在HomeScore
之下,HomeScore
说它的底部与TextView04
的底部对齐.但是,我上面提到的其他一些也可能会产生循环依赖.确保两个小部件不会试图在同一轴上相互约束(如 TextView04
和 HomeScore
).
As Samir points out, at least one of your circular dependencies is between TextView04
and HomeScore
. TextView04
says it is to be below HomeScore
, and HomeScore
says its bottom is aligned with the bottom of TextView04
. However, some of the other ones I note above may also create circular dependencies. Ensure that two widgets do not try to constrain on each other on the same axis (as in TextView04
and HomeScore
).
这篇关于Android 相对布局循环依赖错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!