- 一般情况下创建 Menu 都是在
onCreateOptionsMenu 这个方法中对 Menu 文件进行 inflate ,但在某一次我想用这个办法创建 Fragment 的 Menu 时却出现不显示的情况,通过 Log 可以发现 Menu 其实是创建了的,但不知道什么原因无法显示出来(不是 setHasOptionsMenu 的问题),所以就找了另外一种方法,如下。
通过 Toolbar 来创建 Menu
- 第一步先获取 Toolbar 实例
- 第二步可以用
inflateMenu(int menuId) 这个 Toolbar 的方法对 Menu 进行填充
mToolbar.inflateMenu(R.menu.app_menu)
- 第三步,Menu 创建出来了肯定得响应点击事件,这里我用的是 Toolbar 的方法,如下
mToolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
int itemId = item.getItemId();
switch (itemId) {
case R.id.menu1:
break;
case R.id.menu2:
break;
......
}
return true;
}
});
- 通过这种方法也能顺利将 Menu 给创建出来并响应点击事件
- END