2015-02-03 3 views
0

Можно ли добавить элемент действия в ActionBar, который отображает выпадающее меню по щелчку? ПримерДействие Действие действует как выпадающее меню

краска:

enter image description here

P.S. ActionBar уже содержит кнопку переключения курсора навигации, меню заголовка и переполнения.

  1. Где я могу инициализировать эту кнопку, в которой xml?

  2. Как установить такие выпадающие операции на элемент действия?

  3. Как установить содержимое такого выпадающего меню?

  4. И как получить доступ к конкретному действию click click?

Некоторые примеры рабочего кода были бы замечательными!

Заранее спасибо. Цените любую помощь.

+0

Я не уверен, что видел что-то подобное в других приложениях. Но я верю, что вы можете добавить spinner в панель действий, чтобы реализовать это. Или посмотрите на Провайдера действий http://developer.android.com/guide/topics/ui/actionbar.html – olyv

+0

Вы можете ознакомиться с [руководством разработчика.android] (http://developer.android.com/guide/topics /ui/actionbar.html#Dropdown) или следуйте этому [учебнику] (http://wptrafficanalyzer.in/blog/adding-drop-down-navigation-to-action-bar-in-android/). –

ответ

0

Таким образом, я нашел решение самостоятельно.

Вы должны inflatean Действие пункта в onCreateOptionsMenu(Menu menu):

getMenuInflater().inflate(R.menu.global_filters, menu); 

global_filters.xml:

<?xml version="1.0" encoding="utf-8"?> 
<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=".NavigationActivity"> 

<item android:id="@+id/action_filters" 
    android:title="Фильтры" 
    android:icon="@drawable/ic_filter_white" 
    android:orderInCategory="100" 
    app:showAsAction="ifRoom" /> 
</menu> 

... которая является то, что обратная сторона стрелка: enter image description here

Затем создайте PopupMenu. Я сделал это в onOptionsItemSelected:

View menuItemView = findViewById(R.id.action_filters); // SAME ID AS MENU ID 
    PopupMenu popupMenu = new PopupMenu(this, menuItemView); 
    popupMenu.inflate(R.menu.popup_filters_user); 
    popupMenu.show(); 

и здесь вы установили XML-файл с элементами из выпадающего меню в файле popup_filters_user.xml:

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android" > 
<item 
    android:id="@+id/filter_bought_user" 
    android:title="Купленые"/> 
<item 
    android:id="@+id/filter_price_user" 
    android:title="Цена"/> 
<item 
    android:id="@+id/filter_author_user" 
    android:title="Автор"/> 
</menu> 

и ура! Вот результат:

enter image description here