源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2021-01-02 15:44 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Android 解决嵌套Fragment无法接收onCreateOptionsMenu事件的问题
[b]前言[/b]  嵌套的二级Fragment无法接收onCreateOptionsMenu事件的问题,设置了setHasOptionsMenu也不管用。 [b]正文[/b]  补充说明:   如果通过缓存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);
  }
[b]代码说明:[/b]    示例代码是一级Fragment,getFragmentByPosition返回的是二级Fragment。 以上就是Android 解决 Fragment无法接收onCreateOptionsMenu事件的问题,希望能帮助Android开发的朋友解决类似问题。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部