gpt4 book ai didi

android - onPrepareOptionsMenu 未被调用

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:02:52 24 4
gpt4 key购买 nike

我无法让 onPrepareOptionsMenu() 正常工作。无论我尝试什么,我都无法调用它。

我的应用程序的架构如下:我的主 Activity 包含一个包含 ViewPager 的 Fragment,ViewPager 又具有四个子 Fragment 实例。目前,我正在(成功地)使用 onCreateOptionsMenu() 填充 Activity 中的初始选项菜单,但我希望添加一些与每个 Activity 子 Fragment 相对应的额外选项。

在我的子 fragment 中,我确保 setHasOptionsMenu(true)onCreate() 中被调用并且 getSherlockActivity().supportInvalidateOptionsMenu( )onActivityCreated() 中被调用。在主 Activity 中,onCreateOptionsMenu() 在子 Fragment 实例化后调用一次,无论它们是否包含 supportInvalidateOptionsMenu()。每当替换 Pager 中的 Fragment 时,它随后都会再次调用。

我已经尝试将 onPrepareOptionsMenu() 代码向上移动到父 Fragment 和主 Activity - 无济于事,这表明问题与我使用嵌套不相关 fragment 。我还尝试将 onCreateOptionsMenu() 方法从主 Activity 向下移动到两个 fragment ,在那里它未被调用。

如果有人知道这里发生了什么,我将不胜感激,因为我已经坚持了两天了。

更新 - 我已经弄清楚现在的问题是什么,只是我仍然不确定如何解决它。我在 4.2 上进行测试,似乎 onCreateOptionsMenu() 在 Activity 中的 onResume() 之后被调用 - 如 onCreateOptionsMenu called after onResume on JB 4.2 所示.我认为这意味着 fragment 无法调用 onPrepareOptionsMenu(),因为菜单在它们被实例化之后才存在。那么我该如何解决呢?

最佳答案

这是一个不可避免的 ActionBarSherlock 问题,我在 github 上查看它的问题页面时忽略了它。基本上,嵌套 fragment 中选项菜单的功能尚未添加,请参阅:https://github.com/JakeWharton/ActionBarSherlock/issues/828 .我现在的解决方案是用评论中修改过的文件之一替换 Watson.java。

关于android - onPrepareOptionsMenu 未被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17196309/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com