首页 > 系统 > Android > 正文

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

2019-12-12 05:54:26
字体:
来源:转载
供稿:网友

前言

 嵌套的二级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开发的朋友解决类似问题。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表