RelativeLayout является элементом подкласса ViewGroup, отображающим младшие элементы View в относительных позициях. Положение (позиция) View может быть уточнено как относительное кодноуровневых элементов (таких как элемента слева или ниже от указанного), так и относительной области RelativeLayout (элементов, выровненных книзу, или слева от центра).

RelativeLayout является очень мощным инструментом дизайна пользовательского интерфейса, так как он может исключить использование более сложного ViewGroup. Если вы обнаружите, что часто употребляете элементы группы LinearLayout, то можно заменить их единственным RelativeLayout.
1. Создайте новый проект HelloRelativeLayout.
2. Откройте файл res/layout/main.xml и вставьте следующий код:

[code lang=»xml»]
<?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="fill_parent">
<TextView
android:id="@+id/label"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Type here:"/>
<EditText
android:id="@+id/entry"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@android:drawable/editbox_background"
android:layout_below="@id/label"/>
<Button
android:id="@+id/ok"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/entry"
android:layout_alignParentRight="true"
android:layout_marginLeft="10dip"
android:text="OK" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toLeftOf="@id/ok"
android:layout_alignTop="@id/ok"
android:text="Cancel" />
</RelativeLayout>
[/code]

Обратите внимание на каждый из атрибутов android:layout_*, такие как layout_below, layout_alignParentRight, и layout_toLeftOf. Используя RelativeLayout, вы можете использовать данные атрибуты для описания того, как вы хотите расположить каждый элемент View. Каждый из данных атрибутов определяется различным типом относительного позиционирования (расположения). Некоторые ресурсы используют источник ID одноуровневого элемента View для определения собственной относительной позиции. Например, положение (слева и вровень) последнего элемента Button определено относительно View и идентифицируется ID ok (ссылается на предыдущую кнопку).

Все доступные атрибуты относительной раскладки определены в RelativeLayout.LayoutParams.

3. Убедитесь в том, что вы загружаете данный внешний вид при помощи метода onCreate():

[code lang=»js»]
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
[/code]

Метод setContentView(int) загружает файл внешнего вида для Activity, уточненного источником ID — R.layout.main ссылается на файл res/layout/main.xml .

4. Запустите приложение.
На экране должна появиться следующая картинка: