时间:2021-05-21
前言
嵌套的二级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开发的朋友解决类似问题。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
自从Android3.0引入了Fragment之后,使用Activity去嵌套一些Fragment的做法也变得更加流行,这确实是Fragment带来的一些优点,
都说fragment好用,duang~~,又遇到问题了,记录一下,分享给遇到这个问题的同学!1.fragment嵌套fragment时出现getActivity
Android解决ScrollView嵌套CridView显示问题由于GridView是可滑动的控件,嵌套在ScrollView下时需要重写onMeasure方
fragment无法直接进行点击事件,需要放到oncreatActivity中代码如下:@OverridepublicViewonCreateView(Layo
概述:EventBus是一款针对Android优化的发布/订阅事件总线。主要功能是替代Intent,Handler,BroadCast在Fragment,Act