Использование библиотеки appcompat для создания ActionBar

| 14.05.2014

В этой статье мы рассмотрим пример создания Action Бара для старых версий SDK (< API 11). В качестве вспомогательного инструмента будем использовать библиотеку Support Library v7(в частности, appcompat).

Прежде, чем начать, вам необходимо установить библиотеку Support Library как проект. После того, как подготовительные действия будут проделаны, создайте новый проект SimpleActionBar. Кликните правой кнопкой на папке проекта в Eclipse и далее — Properties. В секции Android убедитесь, что в вашем проекте добавлена библиотека appcompat v7. Если нет, добавьте ее.

Теперь, чтобы добавить Action Bar в наше приложение, нам нужно проделать лишь одно очень простое действие. Откройте файл AndroidManifest.xml и измените тему вашего приложения на Theme.AppCompat.Light.DarkActionBar:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="ru.androiddocs.simpleactionbar"
    android:versionCode="1"
    android:versionName="1.0" >
 
    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="19" />
 
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/Theme.AppCompat.Light.DarkActionBar" >
        <activity
            android:name="ru.androiddocs.simpleactionbar.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
 
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
 
</manifest>

Вот и все! Теперь запустим наше приложение и увидим Action Bar.

Action Bar

Теперь давайте добавим какую-то иконку в Action Bar для одного из пунктов Options Menu.

Скачайте иконки и найдите среди них одну для поиска — лупу. Скопируйте ее в res/drawable (соответствующую папку).

Далее откроем файл res/menu/main.xml и добавим новый пункт action_search:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context="ru.androiddocs.simpleactionbar.MainActivity" >
 
    <item
        android:id="@+id/action_settings"
        android:orderInCategory="100"
        android:title="@string/action_settings"
        app:showAsAction="never"/>
 
    <item
        android:id="@+id/action_search"
        android:title="@string/action_search"
        android:icon="@drawable/ic_action_search"
        app:showAsAction="ifRoom" />
</menu>

ifRoom означает, что иконка будет отображаться, если будет доступное место в Action Bar. Добавьте строковый ресурс action_search в res/values/strings.xml:

1
2
3
4
5
6
7
8
<?xml version="1.0" encoding="utf-8"?>
<resources>
 
    <string name="app_name">SimpleActionBar</string>
    <string name="hello_world">Hello world!</string>
    <string name="action_settings">Settings</string>
    <string name="action_search">Поиск</string>
</resources>

Запускаем приложение и видим Action Bar с иконкой поиска.

Action Bar с иконкой поиска

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*