类似于微信滑动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)