操作项充当下拉菜单
Action Item acts as drop down menu
是否可以在ActionBar中添加Action Item,点击后显示下拉菜单?
绘画示例:
P.S。 ActionBar 已经包含导航抽屉切换按钮、标题和溢出菜单。
我在哪里初始化那个按钮,xml?
如何将此类下拉操作设置为Action Item?
如何设置这样的下拉菜单的内容?
以及如何访问特定项目的点击操作?
一些工作代码示例会很棒!
提前致谢。感谢任何帮助。
所以我自己找到了解决方案。
您需要在 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>
...这是向下的箭头:
然后创建一个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>
万岁!结果如下:
如果您的菜单在片段中,那么您可以使用以下方法获取视图
View menuItemView = MainActivity.getInstance().getWindow().findViewById(R.id.action_filters);
是否可以在ActionBar中添加Action Item,点击后显示下拉菜单?
绘画示例:
P.S。 ActionBar 已经包含导航抽屉切换按钮、标题和溢出菜单。
我在哪里初始化那个按钮,xml?
如何将此类下拉操作设置为Action Item?
如何设置这样的下拉菜单的内容?
以及如何访问特定项目的点击操作?
一些工作代码示例会很棒!
提前致谢。感谢任何帮助。
所以我自己找到了解决方案。
您需要在 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>
...这是向下的箭头:
然后创建一个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>
万岁!结果如下:
如果您的菜单在片段中,那么您可以使用以下方法获取视图
View menuItemView = MainActivity.getInstance().getWindow().findViewById(R.id.action_filters);