Problème relatif aux dépendances circulaires d'Android Relative Layout
Hi im essayant de créer une mise en page personnalisée, mais j'ai du mal à le faire fonctionner correctement, j'obtiens une erreur "circluar dépendances ne peut pas exister dans une Relative mise en page"
heres ce que im essayant d'atteindre à termas de mise en page, puis remplissez chaque champ de texte avec des données.
date number
name score - score name
scorers scorers
heres ma tentative
<?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>
heres l'erreur
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)
source d'informationauteur Luke Batley
Vous devez vous connecter pour publier un commentaire.
Bien, vous avez quelques problèmes ici:
TextView04
déclareandroid:layout_below="@+id/HomeScore"
etandroid:layout_centerVertical="true"
qui sont en conflitAwayTeam
déclareandroid:layout_alignBaseline="@+id/TextView04"
etandroid:layout_alignBottom="@+id/TextView04"
qui sont en conflitHomeTeam
déclareandroid:layout_alignBaseline="@+id/TextView04"
etandroid:layout_alignBottom="@+id/TextView04"
qui sont en conflitAwayScore
déclareandroid:layout_alignBaseline="@+id/TextView04"
etandroid:layout_alignBottom="@+id/TextView04"
qui sont en conflitComme Samir points, au moins l'un de vos dépendances circulaires entre
TextView04
etHomeScore
.TextView04
dit que c'est pour être en dessous deHomeScore
etHomeScore
dit son fond est aligné avec le bas deTextView04
. Cependant, certains de ceux que je la remarque ci-dessus peut également créer des dépendances circulaires. S'assurer que les deux widgets ne pas essayer de contraindre les uns sur les autres, sur le même axe (comme dansTextView04
etHomeScore
).Supprimer
android:layout_below="@+id/HomeScore"
à partir de la premièreTextView
dans votre mise en page, il crée des dépendances circulaires.Parce que vous définissez
android:layout_alignBottom="@+id/TextView04"
dans Textview dont l'id estandroid:id="@+id/HomeScore"
.et d'abord Textview(TextView04) ont égalementandroid:layout_below="@+id/HomeScore"
.Vous avez une petite erreur qui pourrait être la raison:
Lorsque vous faites référence à un autre id, ne pas utiliser de
@+id/...
juste@id/...
. Donc partout à l'exception de laandroid:id
attribut de la+
doit être retiré.Après que vous avez fait que vous pourriez obtenir quelques mises en garde à ce point à l'erreur possible!