如果片段的 hasSetOptionsMenu 为 true,则每次在 OS 2.x 上首次启动时都不会显示溢出菜单。旋转装置解决了这个问题。此外,问题在 3.x 或 4.x 上不可重现。
我用的是4.1版本的ActionBarSherlock,持有Fragment的FragmentActivity有forceoverflow主题。
尝试将 hasSetOptionsMenu 设置为 false,这似乎解决了问题,但我必须为每个片段添加不同的菜单项,所以这对我来说不是一个选项。
调试应用程序,似乎应用程序中每个 hasSetOptionsMenu(true) 的菜单都无效,并且重新创建了活动和片段的 onCreateOptionsMenu。此外,一个有趣的事实是,在调试期间,应用程序启动会延迟,因为它会在不同的断点处停止,这会导致溢出菜单出现。这让我相信它可能是Android SDK 中报告的这个问题,但评论 #8 中提到的解决方法都没有对我有用。
另一个信息:按下硬件选项按钮,出现溢出菜单,所以问题似乎是没有显示溢出图标。
我还发现这个问题也是 ABS 中的一个报告错误,但它似乎已关闭,并且我拥有该库的最新版本。
有没有人遇到过这个?您知道解决方法/解决方法吗?