Welcome

首页 / 移动开发 / Android / Android 解决嵌套Fragment无法接收onCreateOptionsMenu事件的问题

前言
 嵌套的二级Fragment无法接收onCreateOptionsMenu事件的问题,设置了setHasOptionsMenu也不管用。

正文
 补充说明:
  如果通过缓存Fragment手动调用二级Fragment,可能会出现莫名其妙的问题,比如更多Menu不显示。
 解决办法:
  在一级Fragment中添加Menu,可以在一级onOptionsItemSelected中手动调用二级的此方法来处理相关事件。

示例代码:
 @Overridepublic 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;}}@Overridepublic 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开发的朋友解决类似问题。