首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Android4.3菜单项showAsAction=“总是”被忽略

Android4.3菜单项showAsAction=“总是”被忽略
EN

Stack Overflow用户
提问于 2013-07-29 07:24:12
回答 8查看 83.3K关注 0票数 116

我使用的是从Android4.3(API18级)开始提供的新的v7 appcompat库。

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

尝试将菜单添加到活动中,如下所示:

@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中使用过很多次类似的代码。

EN

回答 8

Stack Overflow用户

发布于 2013-07-29 07:43:15

我自己想明白了。使用支持库v7,showAsAction应该放在一个自定义名称空间下,如下所示:

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

Stack Overflow用户

发布于 2013-11-21 19:27:03

还要确保在ActionBarActivity.onCreateOptionsMenu()方法中使用正确的充气器。

正确的解决方案:

MenuInflater menuInflater = getMenuInflater();
menuInflater.inflate(R.menu.menu_example, menu);

错误的解决方案:

MenuInflater menuInflater = new MenuInflater(this);
menuInflater.inflate(R.menu.menu_example, menu);
票数 33
EN

Stack Overflow用户

发布于 2015-12-19 00:14:01

得到了同样的问题,但在Android 5上。我有3个项目,但操作系统忽略了我的属性“总是”,只显示了2个项目。下面是我的解决方案:

  @Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    Log.d(TAG, "onCreateOptionsMenu()");
    inflater.inflate(R.menu.your_menu, menu);
    for (int j = 0; j < menu.size(); j++) {
        MenuItem item = menu.getItem(j);
        Log.d(TAG, "set flag for " + item.getTitle());
        item.setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_ALWAYS);
    }
}
票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17914017

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档