操作项作为下拉菜单

时间:2015-02-03 11:12:12

标签: android android-layout android-actionbar

是否可以在ActionBar中添加Action Item,在点击时显示下拉菜单?

绘画示例:

enter image description here

P.S。 ActionBar已包含导航抽屉切换按钮,标题和溢出菜单。

  1. 我在哪里初始化该按钮,其中xml?

  2. 如何将此类下拉操作设置为操作项?

  3. 如何设置此类下拉菜单的内容?

  4. 如何访问特定项目点击操作?

  5. 一些有效的代码示例会很棒!

    提前致谢。感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

所以我自己找到了解决方案。

您需要在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