Android 解决嵌套Fragment无法接收onCreateOptionsMenu事件的问题
程序员文章站
2024-03-05 08:03:24
前言
嵌套的二级fragment无法接收oncreateoptionsmenu事件的问题,设置了sethasoptionsmenu也不管用。
正文
&...
前言
嵌套的二级fragment无法接收oncreateoptionsmenu事件的问题,设置了sethasoptionsmenu也不管用。
正文
补充说明:
如果通过缓存fragment手动调用二级fragment,可能会出现莫名其妙的问题,比如更多menu不显示。
解决办法:
在一级fragment中添加menu,可以在一级onoptionsitemselected中手动调用二级的此方法来处理相关事件。
示例代码:
@override public void oncreateoptionsmenu(menu menu, menuinflater inflater) { switch (getselectedposition()) { case 1: inflater.inflate(r.menu.menu1, menu); break; case 2: inflater.inflate(r.menu.menu2, menu); break; case 0: default: inflater.inflate(r.menu.menu3, menu); break; } } @override public boolean onoptionsitemselected(menuitem item) { fragment fragment = getfragmentbyposition(getselectedposition()); if (fragment != null) fragment.onoptionsitemselected(item); return super.onoptionsitemselected(item); }
代码说明:
示例代码是一级fragment,getfragmentbyposition返回的是二级fragment。
以上就是android 解决 fragment无法接收oncreateoptionsmenu事件的问题,希望能帮助android开发的朋友解决类似问题。
上一篇: java的jdbc简单封装方法