18

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

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

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

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

  1. 在第一种情况下,我将它们全部设置为android:showAsAction="always"
  2. 在第二种情况下,我将它们全部设置为 `android:showAsAction="ifRoom"`

结果如下:

情况1:

总是这样

案例二:

ifRoom 案例

为什么如果我使用ifRoom,只显示 2 个图标,而实际上 5 个可以轻松填满这个地方?

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

谢谢!

4

3 回答 3

14

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

杰克沃顿说:

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

这里

于 2013-05-27T11:46:13.363 回答
0

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

所以你的回答是:

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

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

于 2013-05-27T11:44:59.493 回答
0

“ifRoom”选项的最大图标数为 5(五个),即使我移动到我的 100 英寸屏幕尺寸平板电脑 :-) 并在横向上拼命旋转它,请参阅 Jake Wharton 回答中的链接(谢谢!)http:// developer.android.com/design/patterns/actionbar.html

于 2016-02-09T18:37:41.970 回答