RelativeLayout. Идентификаторы View.

Урок 6 — RelativeLayout. Идентификаторы View.

RelativeLayout — контейнер, в котором дочерние элементы располагаются относительно друг друга или же самого RelativeLayout.

Доступны следующие варианты расположения дочерних View:

  • Относительно других дочерних View:
    • layout_toStartOf — перед View
    • layout_toEndOf — после View
    • layout_above — над View
    • layout_below — под View
    • layout_alignStart — начинается там же, где начинается View
    • layout_alignEnd — заканчивается там же, где заканчивается View
    • layout_alignTop — верхняя граница начинается там же, где у View
    • layout_alignBottom — нижняя граница начинается там же, где у View
  • Относительно RelativeLayout:
    • layout_alignParentStart — прижимается к началу RelativeLayout
    • layout_alignParentEnd — прижимается к концу RelativeLayout
    • layout_alignParentTop — прижимается к верху RelativeLayout
    • layout_alignParentBottom — прижимается к низу RelativeLayout
    • layout_centerVertical — располагается в центре по вертикали
    • layout_centerHorizontal — располагается в центре по горизонтали
    • layout_centerInParent — располагается в центре RelativeLayout

Позиционирование относительно RelativeLayout

В этом плане RelativeLayout сильно похож на FrameLayout, разве что атрибуты называются иначе.

Создадим такую разметку:

<?xml version="1.0" encoding="utf-8"?>
<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"
    tools:context="com.test.lessons.MainActivity">

    <View
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:background="#ff0000" />

</RelativeLayout>

Как видите, View оказался в левом верхнем углу:

Расположение View в RelativeLayout по умолчанию
Расположение View в RelativeLayout по умолчанию

Теперь попробуем прижать его к правому нижнему углу:

<?xml version="1.0" encoding="utf-8"?>
<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"
    tools:context="com.test.lessons.MainActivity">

    <View
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:layout_alignParentBottom="true"
        android:layout_alignParentEnd="true"
        android:background="#ff0000" />

</RelativeLayout>

Расположение View в правом нижнем углу RelativeLayout
Расположение View в правом нижнем углу RelativeLayout

А теперь — справа и по центру по вертикали:

<?xml version="1.0" encoding="utf-8"?>
<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"
    tools:context="com.test.lessons.MainActivity">

    <View
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:layout_alignParentEnd="true"
        android:layout_centerVertical="true"
        android:background="#ff0000" />

</RelativeLayout>

Расположение View справа в центре RelativeLayout
Расположение View справа в центре RelativeLayout

Думаю, тут все понятно. Попробуйте поэкспериментировать самостоятельно.

Я не буду рассказывать про каждый из параметров, а покажу на практике некоторые из них. Но прежде, чем мы начнем, вам нужно узнать еще кое-что об атрибутах в XML-разметке интерфейсов.

Что такое id у View?

Мы с вами уже не первый урок создаем простенькие интерфейсы. Однако, в реальном приложении мало просто сверстать интерфейс — нужно еще и как-то взаимодействовать со View. Вот, допустим, вы хотите что-то сделать с View в лэйауте. А как к нему обратиться?

Идентификатора-то у него никакого нет! К счастью, в Android у View можно указать атрибут android:id, по которому можно будет однозначно идентифицировать конкретный View.


Продолжение доступно на платных тарифах

Это недорого — всего от 440 ₽ в месяц!


ВЫБРАТЬ ТАРИФ


Продолжение доступно после регистрации

Все уроки на сайте доступны абсолютно бесплатно после регистрации.

Регистрация займёт меньше минуты ;)