1

我的最小 SDK 版本设置为 11,目标 SDK 版本设置为 11。我有一个包含一些片段的活动。该样式具有parent="@android:style/Theme.Light"并且不隐藏操作栏。在我希望看到操作栏的活动中,我覆盖了onCreateOptionsMenu(). 我的理解是 onCreateOptionsMenu() 将在活动开始时自动调用,这将创建操作栏。这不会发生在我身上。我不确定我的理解是否错误,或者我做错了什么导致它没有出现。

需要明确的是,我的 onCreateOptionsMenu 方法甚至没有触发。我怀疑问题出在代码的另一部分,但我不知道它可能是什么。

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.signin_layout_menu, menu);
    return true;
}

这是我的菜单xml:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/menu_signin_layout"
         android:title="stuff"
         android:showAsAction="ifRoom|withText" />
</menu>

这是活动使用的样式:

<style name="Theme.MyTheme" parent="@android:style/Theme.Light">
    <!-- Window attributes -->
    <item name="android:windowTitleSize">36dip</item>
    <item name="android:windowTitleStyle">@style/WindowTitle</item>
    <item name="android:windowTitleBackgroundStyle">@style/WindowTitleBackground</item>

    <item name="android:textAppearanceButton">@style/TextAppearance.Widget.Button</item>

    <!-- Button styles -->
    <item name="android:buttonStyle">@style/Widget.Button</item>
</style>
4

2 回答 2

9

我很确定您的主题需要parent="@android:style/Theme.Holo.Light"用于显示操作栏。

于 2011-07-29T00:42:23.270 回答
0

您是否正在夸大菜单并返回“true”,以表明您已在onCreateOptionsMenu()覆盖中正确处理了该操作?http://developer.android.com/guide/topics/ui/menus.html#Inflating

如果您返回 false,则事件将冒泡到父级,默认情况下不执行任何操作。

于 2011-07-28T17:54:06.530 回答