问题原因:onCreateOptionsMenu它在menu刚建立时才会执行,因此想动态修改menu它是不行的。
解决方案:
一:在你想要变换的地方调用invalidateOptionsMenu();这个方法是使原填充的menu无效。
二:重写onPrepareOptionsMenu();
@Override public boolean onPrepareOptionsMenu(Menu menu) { if (0 == mViewPager.getCurrentItem()){ menu.findItem(R.id.action_capture).setVisible(true); }else { menu.findItem(R.id.action_capture).setVisible(false); } return super.onPrepareOptionsMenu(menu); }