操作栏 – ifRoom选项留下太多空间

我的操作栏上有问题,我尝试在其上设置搜索视图 ,以便使搜索栏可扩展。

这很好,除了我必须使用ifRoom选项设置所有其他菜单项,以便在单击搜索图标时让搜索字段占据所有空间。

这部分也运行良好,除了太多的菜单项被推入菜单溢出,垂直屏幕上只剩下2个图标(包括搜索栏)。

我对另一个有5个菜单项的活动做了另一个测试:

  1. 在第一种情况下,我用android:showAsAction="always"设置所有这些android:showAsAction="always"
  2. 在第二种情况下,我将所有这些设置为“android:showAsAction =“ifRoom”`

结果如下:

情况1:

永远的情况

案例2:

ifRoom案例

为什么我使用ifRoom ,只显示2个图标,而实际上5个可以轻松填充该位置?

因此,我的搜索视图项旁边只有一个菜单项…

谢谢!

看起来像是一个设计决定:

杰克沃顿说:

当包含在操作栏中时,根据设备的密度无关宽度,有最大限度的动作项。 动作项也不能覆盖动作栏宽度的一半以上。

从这里开始 。

在XML文件中,您可以通过为元素声明android:showAsAction="ifRoom"来请求MenuItem显示为操作项。 这样,只有有空间可用时, MenuItem才会出现在ActionBar以便快速访问。 如果没有足够的空间,该项目将显示在溢出菜单中。

你回答的是:

使用“ifRoom”来请求项目出现在操作栏中,但允许系统在没有足够空间时将其移动到溢出菜单中(当较小屏幕上的空间有限时)。

您可以使用android:showAsAction="always"来显示ActionBar所有菜单。

“ifRoom”选项的最大图标是5(五),即使我移动到我的100英寸屏幕大小的平板电脑:-)并拼命旋转它在风景中看到Jake Wharton回答的链接(谢谢!) http:// developer.android.com/design/patterns/actionbar.html