Android 4.3 菜单项 showAsAction ="always"被忽略

标签 android menuitem android-support-library android-actionbar-compat

我正在使用从 Android 4.3(API 级别 18)开始提供的新 v7 appcompat 库。

无论在 showAsAction 中为菜单项指定了什么,它都不会显示 - 它总是创建溢出菜单图标,甚至将单个菜单项放在菜单下。

尝试向这样的 Activity 添加菜单:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.menu_sizes, menu);
    return true;
}

这是我的菜单 xml:

<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/menu_add_size"
        android:title="@string/menu_add_item"
        android:orderInCategory="10"
        android:showAsAction="always"
        android:icon="@android:drawable/ic_menu_add" />
</menu>

这是新的支持库 v7 的错误,还是只是代码有问题? 我之前已经多次使用 ActionBarSherlock 的类似代码。

最佳答案

您可能缺少必需的命名空间:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:[yourapp]="http://schemas.android.com/apk/res-auto">
    <item android:id="@+id/menu_add_size"
        android:title="@string/menu_add_item"
        android:orderInCategory="10"
        [yourapp]:showAsAction="always"
        android:icon="@android:drawable/ic_menu_add" />
</menu>

[yourapp] 替换为您的应用名称或您心中想要的任何命名空间。

其他值得检查的事情:

  • 查看您的 Activity 类是否扩展了 ActionBarActivity

检查问题是否仍然存在。


Android 引用文档:Adding Action Buttons .以下是相关文字:

If your app is using the Support Library for compatibility on versions as low as Android 2.1, the showAsAction attribute is not available from the android: namespace. Instead this attribute is provided by the Support Library and you must define your own XML namespace and use that namespace as the attribute prefix. (A custom XML namespace should be based on your app name, but it can be any name you want and is only accessible within the scope of the file in which you declare it.)

关于Android 4.3 菜单项 showAsAction ="always"被忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17914017/

相关文章:

java - Android - Java - Buttonclicker nullpointerException

java - Activity 不会刷新 onCreate() 中的布局

android - 如何通过 AdWhirl 使用 tapjoy?

html - ASP :Menu children stays visible

android - ListView 的 ScrollingViewBehavior

适用于 Pre-Lollipop 设备的具有弯曲背景的 Android Ripple 按钮

android - API 21 和 22 中 setTorchMode 的替代方案是什么

html - 在 CSS 中,我怎样才能拥有双重背景颜色和以第二个背景颜色元素为中心的文本?

c# - 创建动态 WPF 上下文菜单

android - 尝试更改文本颜色时 TabLayout.setTabTextColors() 不起作用