Относительная компоновка Не получается ниже, как определено

Теперь вот мой XML-код для макета

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <RelativeLayout android:id="@+id/RelativeLayout01" android:layout_width="wrap_content" android:layout_height="wrap_content"> <ImageView android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/default1" android:id="@+id/default1" android:layout_gravity="center" android:scaleType="fitXY"> </ImageView> <ImageView android:layout_marginTop="19dp" android:layout_width="180dp" android:layout_height="45dp" android:src="@drawable/fc_postyour_best_score_bg" android:id="@+id/postscore" android:layout_alignParentRight="true" android:scaleType="fitXY"> </ImageView> <ImageButton android:layout_marginTop="22dp" android:layout_width="35dp" android:layout_height="35dp" android:background="@drawable/fctwitterup" android:layout_marginLeft="7dp" android:id="@+id/twitter" android:layout_alignRight="@id/postscore" android:scaleType="fitXY"> </ImageButton> <ImageButton android:layout_marginTop="22dp" android:layout_width="35dp" android:layout_height="35dp" android:background="@drawable/fcfacebookdown" android:id="@+id/fb" android:layout_toLeftOf="@id/twitter"> </ImageButton> <ImageButton android:layout_width="160dp" android:layout_height="40dp" android:background="@drawable/fsremove_ads_down" android:id="@+id/fsremove_ads_down" android:layout_below="@id/postscore" android:layout_alignParentRight="true" android:layout_marginBottom="3dp"> </ImageButton> <ToggleButton android:id="@+id/fsvibrate_on" android:layout_width="135dip" android:layout_height="35dip" android:textOff="" android:textOn="" android:layout_below="@+id/fsremove_ads_down" android:layout_alignParentRight="true" android:background="@drawable/fsvibrate_on"> </ToggleButton> <ImageButton android:layout_width="210dp" android:layout_height="60dp" android:background="@drawable/fcplaydown" android:id="@+id/fcplaydown" android:layout_centerInParent="true"> </ImageButton> <ToggleButton android:id="@+id/fcsoundondown" android:layout_width="35dp" android:layout_height="35dp" android:textOff="" android:textOn="" android:layout_below="@+id/fcplaydown" android:background="@drawable/fcsoundondown"> </ToggleButton> </RelativeLayout> </LinearLayout> 

Итак, моя проблема – кнопка @+id/fcsoundondown Toggle. Я установил ниже @+id/fcplaydown но она не подходит ниже указанной кнопки, но появляется после "@+id/postscore"

Solutions Collecting From Web of "Относительная компоновка Не получается ниже, как определено"

Я не знаю, чтобы объяснить, почему это происходит, но это связано с тем, что вы устанавливаете @+id/fcplaydown ImageButton в центр родителя, а его родительский элемент – RelativeLayout с шириной и высотой wrap_content, макет просто запутывается.

Итак, измените параметры RelativeLayout на match_parent , и он будет работать.

 <RelativeLayout android:id="@+id/RelativeLayout01" android:layout_height="match_parent" android:layout_width="match_parent"> 

Идентификатор вида макета используется для связывания мест и размеров. Теперь, когда идентификатор определяется, он сохраняется в R.java. Мы все это знаем. Ну, мы не знаем, что представления в RelativeLayout построены из более чем одного разбора файла макета. Учитывая, что компиляция является дорогостоящим процессом, и необходимо оптимизировать этот процесс, Android требует, чтобы идентификатор был сброшен с использованием знака +, когда вы хотите его использовать, а не только тогда, когда u объявляет его. Несмотря на то, что это сбивает с толку, так оно и должно использоваться.

@ + Id следует использовать только тогда, когда вы назначаете новый идентификатор элементу. Пока вы ссылаетесь на элемент, используйте @id .

Символ at (@) в начале строки указывает, что синтаксический анализатор XML должен анализировать и расширять остальную строку идентификатора и идентифицировать его как ресурс идентификатора. Символ плюса (+) означает, что это новое имя ресурса, которое должно быть создано и добавлено к нашим ресурсам (в файле R.java).

Ссылка: http://developer.android.com/guide/topics/ui/declaring-layout.html#id