Телефонуйте » (+38) 096 227 41 41

За замовчуванням, панель дій відображається у верхній частині вікна activity, трохи зменшуючи вільний простір для решти макету вашої activity. Якщо при взаємодії з користувачем хочете приховувати і показувати панель дій, то можете зробити це, викликаючи hide() і show() на ActionBar.

Тим не менш, це заставляє вашу activity перераховувати і перемальовувати макет, заснований на його новому розмірі.


Панель дій галереї в режимі накладання.

Щоб уникнути зміни розміру макета, коли панель дій приховується і показується, можете включити режим накладання для панелі дій. Коли в режимі накладання, макет activity використовує весь доступний простір так, ніби панель дій не існує і система звертає панель дій перед макета. Це приховує дещо з макета у верхній частині, але тепер, коли панель дій приховується або з'являється, системі не треба змінювати розмір макета і перехід гладко.

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

Включення режиму Overlay (Накладання)

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

Для 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 і вище

Якщо ваш додаток використовує Support Library для сумісності на пристроях під управлінням версій нижче, ніж 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, які включають стиль в платформі і один без префікса для більш старих версій, які читають стиль з Support Library.

Робимо запас для верхнього поля макета

Коли панель дій в режимі накладання, то може приховуватися дещо з макета, що повинне залишатися видимим. Щоб переконатися, що такі предмети залишаються нижче панелі дій весь час, додайте запас або відступ у верхній частині вигляду (-ів), задавши висоту через 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>

Якщо використовуєте Support Library для панелі дій, то повинні видалити префікс 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 і вище.
(Джерело: developer.android.com)

Новини

  • Платформа IoT для Raspberry Pi має прикладну програму IFTTT для мобільних пристроїв/хмар
    Платформа IoT для Raspberry Pi має прикладну програму IFTTT для мобільних пристроїв/хмар

    Плата прототипування Cloudio від GrospIO для Raspberry Pi включає 1-дюймовий OLED-дисплей, сенсори, 6 входів/виходів та порт сервоприводу, керується за допомогою мобільного/хмарного додатку. Cloudio дозволяє додавати до функцій IoT підтримку голосу та голосового керування, а також програмне виведення мови. Cloudio оснащена 3-ма цифровим виходами, 3-ма входами для аналогових сигналів і міні портом для сервоприводу, який ідеально підходить для панорамування/нахилу, програм інтелектуального блокування. Інші функції включають тактильний перемикач, RGB світлодіодний індикатор і зумер.

    in Новини

Записатися на курс