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

软件发布|下载排行|最新软件

当前位置:首页IT学院IT技术

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

  2021-03-22 我要评论
想了解Android 解决嵌套Fragment无法接收onCreateOptionsMenu事件的问题的相关内容吗,在本文为您仔细讲解Fragment无法接收onCreateOptionsMenu事件的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:Fragment无法接收onCreateOptionsMenu事件,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开发的朋友解决类似问题。

Copyright 2022 版权所有 软件发布 访问手机版

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 联系我们