我在设置一些片段菜单项时遇到了问题ActionBar
,我找到了解决它的方法,但我不明白为什么它会起作用。
我想在onCreateOptionsMenu
方法中从菜单 xml 文件中膨胀菜单项后立即更改菜单项的可见性。该代码似乎工作正常,但没有明显的效果。我解决了在方法中膨胀菜单onCreateOptionsMenu
但在方法中改变它的可见性的问题onPrepareOptionsMenu
。
我想知道的是为什么改变可见性onCreateOptionsMenu
不起作用。
我能做什么onPrepareOptionsMenu
我不能做onCreateOptionsMenu
什么?
这里有什么模式可以遵循吗?
谢谢!
以下是相关代码,以防万一:
public class MyFragment extends Fragment {
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
inflater.inflate(R.menu.my_menu, menu);
// This does not work, compiles and runs fine, but has no visible effect
MenuItem someMenuItem = menu.findItem(R.id.some_menu_item);
someMenuItem.setVisible(false);
}
@Override
public void onPrepareOptionsMenu(Menu menu) {
super.onPrepareOptionsMenu(menu);
// This does work
MenuItem someMenuItem = menu.findItem(R.id.some_menu_item);
someMenuItem.setVisible(false);
}
}