Когда я пытаюсь взглянуть на свой графический макет, в журнале ошибок появляется это сообщение:
activity_main.xml: циклические зависимости не могут существовать в RelativeLayout.
Как мне исправить это, чтобы мой код работал правильно? Я изменил alignParentLeft
и установил для них значение true. Я также возился с align_above
и align_below
, что не помогло. Я не уверен, в чем моя проблема.
Вот мой код:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_marginTop="57dp"
android:text="Number of cups" />
<EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignTop="@+id/textView1"
android:layout_marginRight="23dp"
android:layout_toRightOf="@+id/textView1"
android:ems="10"
android:inputType="number" >
<requestFocus />
</EditText>
<CheckBox
android:id="@+id/go"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/cream"
android:layout_alignParentLeft="true"
android:layout_marginBottom="20dp"
android:text="To Go" />
<CheckBox
android:id="@+id/cream"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/sugar"
android:layout_alignParentLeft="true"
android:layout_marginBottom="15dp"
android:text="Leave room for cream" />
<CheckBox
android:id="@+id/sugar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/drinks"
android:layout_alignParentLeft="true"
android:layout_marginBottom="22dp"
android:text="Leave room for sugar" />
<RadioGroup
android:id="@+id/drinks"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/sugar"
android:layout_above="@+id/flavoring"
android:layout_alignParentLeft="true"
android:layout_alignParentBottom="true" >
<RadioButton
android:id="@+id/coffee"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Coffee($2.50)" />
<RadioButton
android:id="@+id/cappuccino"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true"
android:text="Cappucino($4.50)" />
<RadioButton
android:id="@+id/espresso"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Espresso($4.50)" />
<RadioButton
android:id="@+id/latte"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Latte($4.50)" />
<RadioButton
android:id="@+id/iced_latte"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Iced Latte($5.00)" />
</RadioGroup>
<TextView
android:id="@+id/flavoring"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/chocolate"
android:layout_alignParentLeft="true"
android:layout_marginTop="57dp"
android:text="Flavoring" />
<CheckBox
android:id="@+id/chocolate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/cherry"
android:layout_alignParentLeft="true"
android:layout_marginBottom="22dp"
android:text="Chocolate" />
<CheckBox
android:id="@+id/cherry"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/vanilla"
android:layout_alignParentLeft="true"
android:layout_marginBottom="22dp"
android:text="Cherry" />
<CheckBox
android:id="@+id/vanilla"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/cherry"
android:layout_alignParentLeft="true"
android:layout_marginBottom="22dp"
android:text="Vanilla" />
<ScrollView
android:id="@+id/ScrollView01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_alignLeft="@+id/editText1"
android:layout_alignParentBottom="true" >
</ScrollView>
</RelativeLayout>
1 ответ
Это твои проблемы
<CheckBox
android:id="@+id/sugar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/drinks"
android:layout_alignParentLeft="true"
android:layout_marginBottom="22dp"
android:text="Leave room for sugar" />
<RadioGroup
android:id="@+id/drinks"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/sugar"
android:layout_above="@+id/flavoring"
android:layout_alignParentLeft="true"
android:layout_alignParentBottom="true" >
Вы говорите sugar
быть выше drinks
, а drinks
быть ниже sugar
. Вы можете сделать только одно из них, иначе они войдут в бесконечный круг. Так что удалите android:layout_below="@+id/sugar"
из drinks RadioGroup
.
Я пока не вижу, есть ли у вас это где-нибудь еще, но если есть, вам также нужно будет исправить это. Вы не можете сказать View
, что он находится над другим, и сказать, что View
находится ниже того же View
... то же самое с левым и правым.
Правка нашла еще одну
<CheckBox
android:id="@+id/cherry"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/vanilla"
android:layout_alignParentLeft="true"
android:layout_marginBottom="22dp"
android:text="Cherry" />
<CheckBox
android:id="@+id/vanilla"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/cherry"
android:layout_alignParentLeft="true"
android:layout_marginBottom="22dp"
android:text="Vanilla" />
Здесь происходит то же самое. Вам нужно будет удалить above
или below
с одного из них.
Похожие вопросы
Новые вопросы
android
Android — это мобильная операционная система Google, используемая для программирования или разработки цифровых устройств (смартфонов, планшетов, автомобилей, телевизоров, одежды, очков, IoT). Для тем, связанных с Android, используйте теги, специфичные для Android, такие как android-intent, android-activity, android-adapter и т. д. Для вопросов, отличных от разработки или программирования, но связанных с Android framework, используйте эту ссылку: https://android .stackexchange.com.
below
, но этоbelow
иabove
наViews
, которые ссылаются друг на друга.