Android菜单项showAsAction="always"无法工作

3
我已经尝试设置以下内容:
android:showAsAction=".."

对于这些中的每一个:

ifRoom, never, withText, always, collapseActionView

但我总是得到相同的结果,即在操作栏上没有任何按钮,所以我必须按“菜单”按钮。
这是当前菜单的图片:
current menu
<item android:id="@+id/smth1"
    android:title="@string/smth1"
    android:showAsAction="always"
    android:orderInCategory="1" />

我甚至尝试添加了这个:

我甚至尝试添加了这个:

android:uiOptions="splitActionBarWhenNarrow"

我尝试将其添加到应用程序清单文件中,但没有任何积极的结果(没有任何变化)。

我已经尝试在各种API上运行它(14、16、17、19),但结果相同。

如果我的问题不太清楚,这里有一个菜单的图片,我想要的是:

enter image description here

感谢任何帮助。


你是否使用v7支持库,因为这个库存在许多问题?... - Laurent Meyer
是的,我使用appcompat_v7作为支持库。 - Vilda
1
然后以这种方式进行搜索,因为这个库有很多“问题”,这里有一个链接可能会有帮助:https://dev59.com/22Mm5IYBdhLWcg3wFL7s#17881737(我认为它可以解决你的问题) - Laurent Meyer
2个回答

14

您需要使用兼容性命名空间(点击这里

<menu xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:app="http://schemas.android.com/apk/res-auto">

<item android:id="@+id/menu_add_size"
    android:title="@string/menu_add_item"
    android:icon="@android:drawable/ic_menu_add" 
    app:showAsAction="always"/>
</menu>

一旦你使用它,你就可以使用尽可能多的菜单按钮,不再局限于仅显示两个按钮和溢出。


0

你可能只是没有足够的空间,你应该首先通过在你的onCreate方法中添加以下内容来删除你的Activity标题:

ActionBar actionBar = getActionBar();
actionBar.setDisplayShowTitleEnabled(false);

然后你可以在这里看到,你能够显示的最大图标数量直接与你屏幕的宽度相关,在小手机上你只能在ActionBar中看到2个图标。


1
我已经尝试了许多不同的分辨率,所以我很满意。不过还是谢谢您的回复。 - Vilda
你如何在代码中展开菜单?仅使用XML是不够的。 - Yoann Hercouet
public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); return true; } - Vilda
你还在使用 android:uiOptions="splitActionBarWhenNarrow" 吗?因为这会将按钮从顶部移除。 - Yoann Hercouet
并将它们放在底部。但是,多亏了之前的回复,现在它可以正常工作了。感谢大家。 - Vilda

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接