欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

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

程序员文章站 2024-03-05 08:03:24
前言  嵌套的二级fragment无法接收oncreateoptionsmenu事件的问题,设置了sethasoptionsmenu也不管用。 正文 &...

前言

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

上一篇: java的jdbc简单封装方法

下一篇: