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

真凉爽啊!青山绿水映入我的眼中,景色怡人啊!

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

相关文章:

你感兴趣的文章:

标签云: