欢迎来到代码驿站!

Android代码

当前位置:首页 > 移动开发 > Android代码

Android 解决嵌套Fragment无法接收onCreateOptionsMenu事件的问题

时间:2021-04-23 09:29:41|栏目:Android代码|点击:

前言

 嵌套的二级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使用PullToRefresh实现下拉刷新和上拉加载

栏    目:Android代码

下一篇:Flutter底部不规则导航的实现过程

本文标题:Android 解决嵌套Fragment无法接收onCreateOptionsMenu事件的问题

本文地址:http://www.codeinn.net/misctech/107219.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有