【问题标题】:Android menu item showAsAction="always" doesn't workAndroid 菜单项 showAsAction="always" 不起作用
【发布时间】:2014-04-30 18:54:42
【问题描述】:

我已尝试设置:

android:showAsAction=".."

对每一个人:

ifRoom, never, withText, always, collapseActionView

但我总是得到相同的结果,即操作栏上没有任何按钮,所以我必须按下“菜单”按钮。

这是现在菜单的图片:

<item android:id="@+id/smth1"
    android:title="@string/smth1"
    android:showAsAction="always"
    android:orderInCategory="1" />

我什至尝试过添加这个:

android:uiOptions="splitActionBarWhenNarrow"

进入应用程序清单文件,但没有积极的结果(没有改变)。

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

如果我的问题似乎不清楚,这里有一张我想要的菜单图片:

感谢您的帮助。

【问题讨论】:

标签: android xml eclipse layout menu


【解决方案1】:

您需要使用兼容性命名空间 (see here)

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

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

【讨论】:

  • 这是完美的 +1
【解决方案2】:

您可能只是没有足够的空间,您应该首先通过将其添加到您的 onCreate 方法中来从您的 Activity 中删除标题:

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

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

【讨论】:

  • 我受够了,我已经尝试了许多不同的分辨率。不过谢谢你的回复。
  • 如何在代码中给菜单充气?仅 XML 是不够的。
  • public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); return true; }
  • 你还在用android:uiOptions="splitActionBarWhenNarrow"吗?因为这会从顶部移除按钮。
  • 并将它们放在底部。但是,嘿,由于以前的回复,它现在可以工作了。谢谢大家。
猜你喜欢
  • 2013-07-28
  • 2014-03-19
  • 1970-01-01
  • 1970-01-01
  • 2020-09-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多