即使最小 SDK 版本设置为 11,ActionBar 也不会创建

发布于 2024-11-26 23:39:04 字数 1492 浏览 0 评论 0原文

我的最小 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>

这是 Activity 使用的样式:

<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>

I have my min SDK version set to 11 and my target SDK version set to 11. I have an activity with some fragments in it. The style has parent="@android:style/Theme.Light" and doesn't hide the actionbar. In the activity where I expect to see the actionbar, I have an override of onCreateOptionsMenu(). My understanding is that onCreateOptionsMenu() will automatically be called when the activity starts and that will create the actionbar. This is not happening for me. I'm not sure if my understanding is wrong or if I'm doing something wrong that is causing it not to show up.

To be clear, my onCreateOptionsMenu method is not even firing. I suspect the problem is in another part of the code, but I don't know what it could be.

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

Here is my menu 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>

Here is the style that activity is using:

<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>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

我很坚强 2024-12-03 23:39:04

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

I'm pretty sure your theme needs to be parent="@android:style/Theme.Holo.Light" for the actionbar to show.

深府石板幽径 2024-12-03 23:39:04

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

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

Are you inflating the menu and returning "true", to indicate that you've handle the action, correctly in your onCreateOptionsMenu() override? http://developer.android.com/guide/topics/ui/menus.html#Inflating

If you're returning false, the event will bubble up to the parent, which by default does nothing.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文