11

こんにちは、カスタム レイアウトを作成しようとしていますが、適切に機能させるのに苦労しています。「循環依存関係は相対レイアウトに存在できません」というエラーが表示されます。

レイアウトの観点から私が達成しようとしているものを次に示し、各テキストフィールドにデータを入力します。

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)
4

3 に答える 3

13

さて、ここでいくつかの問題があります:

  1. TextView04宣言android:layout_below="@+id/HomeScore"android:layout_centerVertical="true"、競合する

  2. AwayTeam宣言android:layout_alignBaseline="@+id/TextView04"android:layout_alignBottom="@+id/TextView04"、競合する

  3. HomeTeam宣言android:layout_alignBaseline="@+id/TextView04"android:layout_alignBottom="@+id/TextView04"、競合する

  4. AwayScore宣言android:layout_alignBaseline="@+id/TextView04"android:layout_alignBottom="@+id/TextView04"、競合する

Samirが指摘しているように、循環依存関係の少なくとも1つはとの間TextView04ですHomeScoreTextView04下にあることを示しHomeScoreHomeScoreその下部がの下部に位置合わせされていることを示しTextView04ます。ただし、上記で説明した他のいくつかも、循環依存関係を作成する可能性があります。2つのウィジェットが同じ軸上で互いに制約しようとしないことを確認してください(およびのようにTextView04HomeScore

于 2012-06-06T15:11:29.223 に答える
7

android:layout_below="@+id/HomeScore"レイアウトの最初から削除するTextViewと、循環依存関係が作成されます。

なんで ?

android:layout_alignBottom="@+id/TextView04"IDが.であるTextview に設定し、android:id="@+id/HomeScore"最初のTextview(TextView04)にもandroid:layout_below="@+id/HomeScore".

 <TextView
        android:id="@+id/TextView04"
        android:layout_width="20dp"
        android:layout_height="20dp"
        android:layout_centerVertical="true" 
        android:layout_centerHorizontal="true" 
        android:text="-"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textColor="@color/blue"
        android:textStyle="bold" />
于 2012-06-06T15:07:02.667 に答える
1

You have a small mistake that might be the reason:

When you reference to another id, don't use @+id/... just @id/.... So everywhere except the android:id attribute the + must be removed.

After you have done that you might get some warnings that point to the possible error!

于 2012-06-06T15:08:35.943 に答える