【问题标题】:Android: using app:showAsAction="always" for all menu itemsAndroid:对所有菜单项使用 app:showAsAction="always"
【发布时间】:2014-10-23 01:55:50
【问题描述】:
在我正在开发的这个应用程序的主要活动中,我希望 4 个菜单项始终显示在操作栏中。我对菜单的每个项目都使用了 showAsAction = "always",因为我在这个活动中的主题删除标题并仅显示图标,因此我知道操作栏中将有一个很大的空间来显示图标。但是,我不确定将所有项目设置为“始终”是否是正确的做法它..还有其他方法还是我正确?
ps:showAsAction = "ifRoom" 只允许我的应用在操作栏中显示 2 个项目..
【问题讨论】:
标签:
android
android-actionbar
【解决方案1】:
如果您想确保拥有所有 4 个图标,最好创建自己的 ActionBar 并做任何您喜欢的事情。
在原来的 ActionBar 中你可以使用:
android:showAsAction="always"
这会迫使他们呆在那里,但要考虑到如果仍然没有足够的空间会发生什么。
当包含在操作栏中时,根据设备的与密度无关的宽度,操作项的最大值是有限的。操作项也不能超过操作栏宽度的一半。
来自here
【解决方案2】:
您可以通过编程方式完成此任务:
@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;
}