嵌套片段菜单操作按钮仅在我旋转设备时出现



我有一个[Xamarin,尽管怀疑这是罪魁祸首]支持/v4片段,它在ViewPager上有5个嵌套片段(使用此TabStrip实现),其中4个必须显示一个操作栏按钮才能将其内容保存到磁盘。这很好用。我的问题是,在某些配置下,所说的actionbar按钮只从第二个onCreate调用开始出现(IE:它从我旋转设备的那一刻开始工作)。

我没有设法清楚地隔离这个问题,但这些是我得到的线索:

设备提示

  • Nexus 5/5.1-直接工作
  • 三星Galaxy Ace 3/4.2.2-直接工作
  • 三星Galaxy Tab S/4.4.2-直接工作
  • OnePlus One CM11S/4.4.2-需要轮换
  • Genymotion 10"/4.4.2-需要轮换

代码提示

  • 容器/父片段在onCreate调用setHasOptionsMenu(true),与所有子片段相同
  • 任何菜单代码都不能区分savedInstanceState是否为null
  • onCreateOptionsMenu在所有活动重新创建的所有嵌套片段上都被调用,并且在膨胀自己的菜单之前,它确实会回调到base/super。它是在onResume之后调用的,如果这有帮助的话
  • 菜单文件在任何配置中都不会被覆盖(它只存在于默认菜单/文件夹中)

杂项。评论:

  • 父片段是钻取/列表细节UI模式上的细节片段,它替换了有操作按钮的列表片段(不将其推入堆栈),这些操作很好。除了当细节片段再次被列表片段替换时,列表片段也缺少它的动作按钮(同样,它在被细节片段替换之前也有)
  • 我在其他片段上广泛使用动作按钮,这些片段也是TabStrips的子片段,它们一直在工作
  • 我正在为这个问题创建一个最小限度的复制,这样我就可以共享示例代码

提前谢谢。

我的问题源于其中一个子片段正在设置活动标题,可能会使菜单无效。

注释掉setTitle(…)调用解决了问题。

最新更新