亲宝软件园·资讯

展开

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

人气:0
想了解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开发的朋友解决类似问题。

加载全部内容

相关教程
猜你喜欢
用户评论