安卓Toolbar对menu进行动态加载

类似于微信滑动ViewPager或者底部TabLayout切换时对Toolbar的Menu动态加载

/*onCreateOptionsMenu只会执行一次,他只会在MENU显示之前,去做一次!!!之后就不再去执行
      onPrepareOptionsMenu 每次在display menu之前,都会去执行
      重写onPrepareOptionsMenu(Menu menu)实现对Toolbar的动态加载
      !!!每次调用onPrepareOptionsMenu()的时候需要首先调用menu.clear()清除一下之前的menu数据,如果不清除的话,之前的menu数据不会被释放,造成内存泄漏!!!
    */
    @Override
    public boolean onPrepareOptionsMenu(Menu menu) {
        // 动态设置ToolBar状态
        switch (mVp_main.getCurrentItem()) {
            case 0:
                menu.findItem(R.id.search_button).setVisible(true);
                menu.findItem(R.id.scan_button).setVisible(true);
                menu.findItem(R.id.setting_button).setVisible(false);
                break;
            case 1:
                menu.findItem(R.id.search_button).setVisible(false);
                menu.findItem(R.id.scan_button).setVisible(false);
                menu.findItem(R.id.setting_button).setVisible(false);
                break;
            case 2:
                menu.findItem(R.id.search_button).setVisible(false);
                menu.findItem(R.id.scan_button).setVisible(false);
                menu.findItem(R.id.setting_button).setVisible(true);
                break;
        }
        return super.onPrepareOptionsMenu(menu);
    }
重写onPrepareOptionsMenu(Menu menu)实现对Toolbar的动态加载
每次调用onPrepareOptionsMenu()的时候需要首先调用menu.clear()清除一下之前的menu数据。
如果不清除的话,之前的menu数据不会被释放,造成内存泄漏。
设置menu.findItem(R.id.yourId).setVisable(/true/false)控制item的可见性。

重写 onPrepareOptionsMenu(Menu menu)
menu.findItem(R.id.yourId).setVisable(/true/false)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值