Этот урок научит вас
- Включить режим наложения
- Только для Android 3.0 и выше
- Для Android 2.1 и выше
- Укажите верхнюю границу макета
Вы также должны прочитать
По умолчанию панель действий отображается в верхней части окна деятельности, слегка уменьшая пространство, доступное для остальной части макета вашей деятельности. Если, в ходе взаимодействия с пользователем, вы хотите скрыть или показать панель действий, вы можете сделать это вызвав hide()
и show()
наActionBar
. Однако, это заставляет вашу деятельность пересчитать и перерисовать макет, основанный на его новом размере.
Полезный совет: Если вы хотите, чтобы ваш макет быть частично виден из-за панели действий, создайте пользовательский стиль для панели действий с частично прозрачным фоном, таким как показано на рисунке 1. Для получения информации о том, как определить фон панели действий, читайте Стилизация панели действий.
Включить режим наложения
Чтобы включить режим наложения для панели действий, вам необходимо создать собственную тему, которая расширяет существующую тему панели действий, и установитьandroid:windowActionBarOverlay
свойство в true
.
Только для Android 3.0 и выше
Если ваш minSdkVersion
установлен в 11
или выше, пользовательская тема должна использоватьTheme.Holo
тему (или одну из её потомков) в качестве родительской темы. Например:
<resources> <!-- the theme applied to the application or activity --> <style name="CustomActionBarTheme" parent="@android:style/Theme.Holo"> <item name="android:windowActionBarOverlay">true</item> </style> </resources>
Для Android 2.1 и выше
Если ваше приложение использует Библиотеку поддержки для совместимости на устройствах под управлением Android версии ниже 3.0, пользовательская тема должна использоватьTheme.AppCompat
тему (или одну из её потомков) в качестве родительской темы. Например:
<resources> <!-- the theme applied to the application or activity --> <style name="CustomActionBarTheme" parent="@android:style/Theme.AppCompat"> <item name="android:windowActionBarOverlay">true</item> <!-- Support library compatibility --> <item name="windowActionBarOverlay">true</item> </style> </resources>
Также обратите внимание, что эта тема включает в себя два определения дляwindowActionBarOverlay
стиля: одно с android:
префиксом и второе без. Тот, что с android:
префиксом для версий Android, которые включают стиль в платформе, и второе без префикса для старых версий, которые берут стиль из Библиотеки поддержки.
Укажите верхнюю границу макета
Когда панель действий в режиме наложения, это может затемнять некоторую часть макета, которая должна оставаться видимой. Для того, чтобы такие элементы оставались ниже панели действий все время, добавьте либо поле (margin) или заполнение (padding) для верхней части представления с помощью высоты, указанной actionBarSize
. Например:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingTop="?android:attr/actionBarSize"> ... </RelativeLayout>
Если вы используете Библиотеку поддержки для панели действий, необходимо удалить android:
префикс. Например:
<!-- Support library compatibility --> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingTop="?attr/actionBarSize"> ... </RelativeLayout>
В этом случае, ?attr/actionBarSize
значение без префикса работает на всех версиях, включая Android 3.0 и выше.