Панель управления в режиме наложения

По умолчанию панель инструментов занимает верхнюю часть явления, слегка уменьшая количество свободного пространства для остальных элементов. Для того, чтобы спрятать или снова показать панель инструментов, класс ActionBar содержит методы hide() и show(). Однако при их использовании, явление пересчитывает размеры макета и заного его перерисовывает.

Чтобы избежать перерисовки макета вы можете включить режим наложения для панели инструментов. В режиме наложения элементы занимают все свободное пространство на экране, как если бы панели инструментов не было бы вовсе. Из-за этого часть макета сверху может быть скрыта под панелью, однако теперь система не пересчитывает размеры каждый раз при скрытии или показе панели инструментов.

Рисунок 1. Панель инструментов в режиме наложения

Совет: если вы хотите, чтобы ваш макет было видно под панелью инструментов, создайте новый стиль для панели, в котором укажите полупрозрачный фон. Пример смотрите на рисунке 1. Информация о том, как задать фон панели инструментов содержится в предыдущем уроке Стилизация панели инструментов.

Включение режима наложения

Чтобы включить режим наложения для панели инструментов, создайте собственную тему и установите свойство android:windowActionBarOverlay в значение true.

Только для Android 3.0 и выше

Если значение параметра minSdkVersion равно 11 или выше, ваша тема должна использовать в качестве родителя Theme.Holo. Например так:

Android 2.1 и выше

В случае использования библиотеки поддержки, для совместимости с устройствами, работающими на Android ниже 3.0, вы должны наследовать свою тему от Theme.AppCompat (или от одной из потомков данной темы). Например:

Не забывайте, что данная тема должна дважды определять свойство windowActionBarOverlay – с префиксом android: и без него. Свойство с префиксом android: будет использоваться на устройствах, в которых Android его поддерживает на уровне платформы, а свойство без префикса будет использоваться для старых версий Android и стили будет загружены из библиотеки поддержки.

Установка верхнего отступа для макета

Когда панель инструментов находится в режиме наложения, некоторые части макета могут быть скрыты под панелью. Чтобы разместить такие элементы ниже панели инструментов, добавьте элементу внутренний или внешний отступ, используя параметр actionBarSize. Например:

Если вы используете библиотеку поддержки, удалите префикс android:. Например:

В данном примере значение ?attr/actionBarSize без префикса будет работать на всех платформах, включая Android 3.0 и выше.

Добавить комментарий