Android 解决嵌套Fragment无法接收onCreateOptionsMenu事件的问题
前言
嵌套的二级Fragment无法接收onCreateOptionsMenu事件的问题,设置了setHasOptionsMenu也不管用。
正文
补充说明:
如果通过缓存Fragment手动调用二级Fragment,可能会出现莫名其妙的问题,比如更多Menu不显示。
解决办法:
在一级Fragment中添加Menu,可以在一级onOptionsItemSelected中手动调用二级的此方法来处理相关事件。
示例代码:
@Override
publicvoidonCreateOptionsMenu(Menumenu,MenuInflaterinflater){
switch(getSelectedPosition()){
case1:
inflater.inflate(R.menu.menu1,menu);
break;
case2:
inflater.inflate(R.menu.menu2,menu);
break;
case0:
default:
inflater.inflate(R.menu.menu3,menu);
break;
}
}
@Override
publicbooleanonOptionsItemSelected(MenuItemitem){
Fragmentfragment=getFragmentByPosition(getSelectedPosition());
if(fragment!=null)
fragment.onOptionsItemSelected(item);
returnsuper.onOptionsItemSelected(item);
}
代码说明:
示例代码是一级Fragment,getFragmentByPosition返回的是二级Fragment。
以上就是Android解决Fragment无法接收onCreateOptionsMenu事件的问题,希望能帮助Android开发的朋友解决类似问题。
热门推荐
10 新人红包祝福语简短精辟
11 幼师给毕业祝福语简短
12 生日高考祝福语妹妹简短
13 下飞机祝福语简短英文
14 元宵发客户祝福语简短
15 爸妈金婚文案祝福语简短
16 新郎朋友红包祝福语简短
17 虎年五一祝福语大全简短
18 出阁宴祝福语姐姐简短