Android 解决嵌套Fragment无法接收onCreateOptionsMenu事件的问题
前言
嵌套的二级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开发的朋友解决类似问题。
相关文章
一文详解Android IntentService的开发技巧
Android应用开发中,执行后台任务是常见需求之一,其中,IntentService是一种强大的工具,可以轻松管理异步任务,而无需担心线程管理和生命周期问题,本文将深入探讨 IntentService 的各个方面,需要的朋友可以参考下2023-11-11Android编程四大组件之BroadcastReceiver(广播接收者)用法实例
这篇文章主要介绍了Android编程四大组件之BroadcastReceiver(广播接收者)用法,结合实例形式较为详细的分析了BroadcastReceiver的功能.定义,用法及相关使用技巧,需要的朋友可以参考下2016-01-01android获取图片尺寸的两种方式及bitmap的缩放操作
这篇文章主要介绍了android获取图片尺寸的两种方式及bitmap的缩放操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2020-08-08
最新评论