Android:对所有菜单项使用 app:showAsAction=\\”always\\”

Android: using app:showAsAction="always" for all menu items

在我正在开发的这个应用程序的主要活动中,我希望 4 个菜单项始终显示在操作栏中。我对菜单的每个项目都使用了 showAsAction = "always",因为我的此活动中的主题删除了标题并仅显示图标,因此我知道操作栏中将有很大的空间用于显示图标。但是,我不确定是否将所有项目都设置为"始终"" 是正确的做法.. 还有其他方法还是我正确?

ps: showAsAction = "ifRoom" 只允许我的应用在操作栏中显示 2 个项目..


如果您想确保拥有所有 4 个图标,最好创建自己的 ActionBar 并做任何您喜欢的事情。

在原来的 ActionBar 中你可以使用 :

android:showAsAction="always"

这将迫使他们在那里,但如果仍然没有足够的空间,请考虑发生了什么。

When contained within the action bar there is a finite maximum of action items based on the device's density-independent width. The action items can also not cover more than half the width of the action bar.

从这里


你可以通过编程来完成这个任务:

1
2
3
4
5
6
7
8
9
10
11
12
@Override
public boolean onCreateOptionsMenu(final Menu menu) {
    super.onCreateOptionsMenu(menu);

    getMenuInflater().inflate(R.menu.main, menu);

    for (int i = 0; i < menu.size(); i++) {
        menu.getItem(i).setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
    }

    return true;
}