Android 第一次打开菜单时,Jelly bean没有调用PrepareOptions菜单()
我正在覆盖PrepareOptions功能表以隐藏和显示菜单项。使用API 16级仿真器进行测试时;首次打开菜单时,不会调用OnPrepareOptions菜单。但当我重新打开菜单时,它就工作了。问题只在于第一次使用。你可以用这个简单的测试它Android 第一次打开菜单时,Jelly bean没有调用PrepareOptions菜单(),android,android-4.1-jelly-bean,Android,Android 4.1 Jelly Bean,我正在覆盖PrepareOptions功能表以隐藏和显示菜单项。使用API 16级仿真器进行测试时;首次打开菜单时,不会调用OnPrepareOptions菜单。但当我重新打开菜单时,它就工作了。问题只在于第一次使用。你可以用这个简单的测试它 @Override public void onPrepareOptionsMenu(Menu menu) { Toast.makeText(this.getActivity(), "pre", Toast.LENGTH_SHORT).show()
@Override
public void onPrepareOptionsMenu(Menu menu) {
Toast.makeText(this.getActivity(), "pre", Toast.LENGTH_SHORT).show();
super.onPrepareOptionsMenu(menu);
}
有什么想法吗?onprepareOptions菜单()
每次用户打开姜饼和下面的菜单时都会被调用。从上到下,假设操作栏中有项目时,选项菜单始终处于打开状态
如果要在活动生命周期内以及在OnPrepareOptions菜单()
回调中更新选项菜单,则需要调用InvalidateOptions菜单()
,然后将调用OnPrepareOptions菜单()
您能否在onCreateOptions菜单()
回调中实现首次使用的代码?每次创建选项菜单时都会调用它,并且是在首次使用时创建的。这是android错误:
第一次按菜单按钮时,如果使用支持库,请调用invalidateOptionsMenu()
或supportInvalidateOptionsMenu()
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
switch(keyCode) {
case KeyEvent.KEYCODE_MENU:
if(mIsMenuFirstClick) {
mIsMenuFirstClick = false;
supportInvalidateOptionsMenu();
}
}
return super.onKeyDown(keyCode, event);
}
你从哪里来的?很好用,谢谢!请注意,在某些情况下,它应该是
ActivityCompat.InvalidateOptions菜单(此菜单)代码>。