3

在我的应用程序中,我可以看到操作栏,但看不到设置项,因为它从不调用 onCreateOptionsMenu。

对于目标 sdk 16 的应用程序,它由一个选项卡组成,每个选项卡都是一个片段。在 Fragment 类上,在 onCreate() 期间,我调用了 setHasOptionsMenu(true)。主题是 Theme.Holo.Light。如果我在模拟器(Android 4.0)上运行应用程序并按下硬件菜单项,它会调用该方法,但它会向我显示类似于 Android 2.3 菜单的菜单,而不是在操作栏中!

我不认为问题出在 sdk 版本上,因为 actionbar 是可见的!任何想法?我可以检查什么来找到错误?

非常感谢您的每一次帮助!我最好的问候曼努埃拉

4

2 回答 2

4

我遇到了同样的问题并通过这种方式解决了

清单.xml

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@android:style/Theme.NoTitleBar" >

删除 android:theme="@android:style/Theme.NoTitleBar"

于 2013-01-22T09:09:14.383 回答
1

这是正常的行为。系统会根据运行的硬件进行自我调整。

如果设备没有硬件按钮,它会显示为操作栏中的下拉菜单。如果设备确实有一个硬件按钮,它会显示为从菜单按钮附近升起。

编辑

如果菜单在操作栏上,它只创建一次(因为菜单停留在屏幕上,不会像硬件按键手机那样消失),所以还有另一个回调,我认为它是 onPrepareOptionsMenu 或类似的东西,称为在菜单显示在屏幕上之前。

于 2012-10-31T11:48:52.610 回答