首页 > 代码库 > 动态修改ActionBar Menu的显示
动态修改ActionBar Menu的显示
应用场景:
在主Activity中,采用InstrumentedActivity侧边栏的方式,侧边栏的每一项对应一个Fragment,要实现不同的Fragment动态显示与隐藏ActionBar Menu。
处理思路:
在onCreateOptionsMenu()方法中,根据标识flag动态设置MenuItem的显示与隐藏,在切换Fragment 的地方调用:invalidateOptionsMenu()方法重新加载Menu。
@Override public boolean onPrepareOptionsMenu(Menu menu) { return super.onPrepareOptionsMenu(menu); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.czsm_content, menu); MenuItem mi = menu.findItem(R.id.action_czsm); if(isShowInfoFlag){ mi.setVisible(true); }else{ mi.setVisible(false); } return super.onCreateOptionsMenu(menu); } @Override public boolean onOptionsItemSelected(MenuItem item) { if(isShowInfoFlag && !isCheckedCur){ switch(item.getItemId()){ case R.id.action_czsm: Fragment fragment = null; ft = fm.beginTransaction(); fragment = new CzsmFragment(); isCheckedCur = true;//表示当前点击过了 ft.replace(R.id.content_frame, fragment); ft.commit(); break; } } if (mDrawerToggle.onOptionsItemSelected(item)) { return true; } return super.onOptionsItemSelected(item); }
动态修改ActionBar Menu的显示
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。