Fragment添加Menu的方法

1,464 阅读1分钟
  • 一般情况下创建 Menu 都是在 onCreateOptionsMenu 这个方法中对 Menu 文件进行 inflate ,但在某一次我想用这个办法创建 Fragment 的 Menu 时却出现不显示的情况,通过 Log 可以发现 Menu 其实是创建了的,但不知道什么原因无法显示出来(不是 setHasOptionsMenu 的问题),所以就找了另外一种方法,如下。

通过 Toolbar 来创建 Menu

  1. 第一步先获取 Toolbar 实例
  2. 第二步可以用 inflateMenu(int menuId) 这个 Toolbar 的方法对 Menu 进行填充 mToolbar.inflateMenu(R.menu.app_menu)
  3. 第三步,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