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

Панель дій дозволяє додавати кнопки для найбільш важливих елементів дій, пов'язаних з поточним контекстом додатка. Ті кнопки, які з'являються безпосередньо в панелі дій із текстовою позначкою і/або, відомі як кнопки дій.

Дії, які не можуть поміститися в панелі дій або не є досить важливими, приховані в додаткових діях.


Панель дій з кнопкою дії для пошуку та знаком додаткових дій.

Вказування дій в XML

Всі кнопки дій та інші можливості, доступні в додаткових діях, визначаються в ресурсі меню XML. Щоб додати дії в панелі дій, створіть новий файл XML в директорії res/menu/ вашого проекту.
Додайте елемент <item>  для кожного пункту, який хочете включити в панелі дій. Наприклад:
res/menu/main_activity_actions.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
    <!-- Search, should appear as action button -->
    <item android:id="@+id/action_search"
          android:icon="@drawable/ic_action_search"
          android:title="@string/action_search"
          android:showAsAction="ifRoom" />
    <!-- Settings, should always be in the overflow -->
    <item android:id="@+id/action_settings"
          android:title="@string/action_settings"
          android:showAsAction="never" />
</menu>

Завантаження іконок для Action Bar
Щоб краще відповідати принципи іконографії Android, ви повинні використовувати іконки, запропоновані в Action Bar Icon Pack.

Цим оголошуємо, що дія Search (Пошук) повинна з'явитися як кнопка дій, коли місце доступне на панелі дій, але дія Settings (Параметри) повинна завжди з'являтися в додаткових діях. (За замовчуванням, всі дії з'являються в додаткових діях, але буде хорошою практикою, щоб явно оголошувати ваші дизайнерські наміри для кожної дії.)
Атрибут icon потребує ідентифікатора ресурсу для зображення. Ім'я, яке слідує за @drawable/ має бути ім'ям растрового зображення, збереженого в директорії res/drawable/ вашого проекту. Наприклад, "@drawable/ic_action_search" звертається до ic_action_search.png. Точно так само, атрибут title використовує ресурс рядка, який визначений за допомогою XML файлу в директорії res/values/ вашого проекту, як описано в Building a Simple User Interface.

Примітка: При створенні іконок та інших растрових зображень для вашого додатку, важливо, щоб ви надавали кілька версій, кожна з яких оптимізована для різної роздільної здатності. Це буде обговорюватися далі в уроці про підтримку різних екранів.

Якщо ваш додаток використовує Support Library для сумісності версій з настільки ж низькою версією як Android 2.1, то атрибут showAsAction не доступний з android: namespace. Замість цього атрибуту передбачено Support Library і ви повинні визначити своє власне XML-namespace та використовувати цей простір імен як префікс атрибуту. (Користувальницьке XML-namespace -повинне бути засноване на імені додатку, але це може бути будь-яке ім'я, яке захочете, і доступне тільки в межах того файлу, в якому ви його оголошуєте). Наприклад:
res/menu/main_activity_actions.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:yourapp="http://schemas.android.com/apk/res-auto" >
    <!-- Search, should appear as action button -->
    <item android:id="@+id/action_search"
          android:icon="@drawable/ic_action_search"
          android:title="@string/action_search"
          yourapp:showAsAction="ifRoom"  />
    ...
</menu>

Додавання дій до панелі дій

Щоб розмістити пункти меню в панелі дій, реалізуйте метод зворотного виклику onCreateOptionsMenu() у своїй activity, щоб розширити ресурс меню в даному Menu об'єкта. Наприклад:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu items for use in the action bar
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.main_activity_actions, menu);
    return super.onCreateOptionsMenu(menu);
}

Реакція на кнопки дії

Коли користувач натискає на одну з кнопок дій чи інший елемент в додаткових діях, система викликає метод зворотного виклику onCreateOptionsMenu() вашої activity. У вашій реалізації цього методу, викличте getItemId() на даному MenuItem, щоб визначити, який елемент був натиснутий, - повертається ID, яке відповідає значенню, яке оголошене у відповідних елементах <item>  атрибуту android:id.
@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle presses on the action bar items
    switch (item.getItemId()) {
        case R.id.action_search:
            openSearch();
            return true;
        case R.id.action_settings:
            openSettings();
            return true;
        default:
            return super.onOptionsItemSelected(item);
    }
}

Додавання кнопки Up для activity низького рівня


Кнопка Up в Gmail.

Всі екрани у вашому додатку, які не є головним входом в додаток (activity не є екраном "home"), повинні запропонувати користувачеві спосіб переміститися до екрану логічного батька в ієрархії додатку, натиснувши кнопку на панелі дії.
При роботі на Android 4.1 (API рівня 16 або вище), або при використанні ActionBarActivity з Support Library, виконання навігації Up просто вимагає, щоб ви оголосити батьківську activity у файлі маніфесту і дозволили кнопку Up на панелі дій.
Наприклад, ось як ви можете оголосити батьківську activity в маніфесті:
<application ... >
    ...
    <!-- The main/home activity (it has no parent activity) -->
    <activity
        android:name="com.example.myfirstapp.MainActivity" ...>
        ...
    </activity>
    <!-- A child of the main activity -->
    <activity
        android:name="com.example.myfirstapp.DisplayMessageActivity"
        android:label="@string/title_activity_display_message"
        android:parentActivityName="com.example.myfirstapp.MainActivity" >
        <!-- Parent activity meta-data to support 4.0 and lower -->
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="com.example.myfirstapp.MainActivity" />
    </activity>
</application>

Потім дозвольте значок додатку як кнопку Up, викликавши setDisplayHomeAsUpEnabled():
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_displaymessage);

    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    // If your minSdkVersion is 11 or higher, instead use:
    // getActionBar().setDisplayHomeAsUpEnabled(true);
}

Тому що система тепер знає, що MainActivity є батьком activity для DisplayMessageActivity, то коли користувач натискає кнопку Up, система переходить до відповідної батьківської activity -- вам не треба обробляти подію за допомогою події кнопки Up.
(Джерело: developer.android.com)

Новини

  • Модуль SMARC запускає Android або Linux на Snapdragon 820
    Модуль SMARC запускає Android або Linux на Snapdragon 820

    SMART 2.0 "Snapdragon 820 SOM" iWave має 3 Гб LPDDR4, 32 Гб eMMC, Wi-Fi та Bluetooth, а також вхідні/вихідні виводи, включаючи GbE, HDMI 2.0, MIPI-CSI, USB 3.0 та PCIe. Комп'ютер розміром 82x50 мм працює на ОС Android Snailbone або вище, з наступною підтримкою Linux. Snapdragon 820 об'єднує чотири 14-нм Cortex з технологією FinFET - два на частоті 2,15 ГГц, а два з 1,6 ГГц, які намагаються імітувати високоякісні Cortex-A72. Крім того, SoC оснащений 624 МГц Adreno 530 GPU, Hexagon 680 DSP і 14-розрядним ISP для Spectra. Snapdragon 820 SOM підтримує кодування H.265 4K@60 та кодування 4K@30.

    in Новини

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