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

时间:2013-05-27 11:26:47

标签: android android-actionbar android-search

我的操作栏上出现问题,我尝试在其上设置search view以使搜索栏可扩展。

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

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

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

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

    案例1:

    always case

    案例2:

    ifRoom case

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

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

    谢谢!

3 个答案:

答案 0 :(得分:14)

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

Jake Wharton说:

  

当包含在操作栏中时,有一个有限的最大值   基于设备的密度无关宽度的动作项。该   动作项目也不能覆盖动作宽度的一半以上   杆

来自here

答案 1 :(得分:0)

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

所以你回答的是:

  

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

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

答案 2 :(得分:0)

&#34; ifRoom&#34;的最大图标数量选项是5(五),即使我移动到我的100英寸屏幕大小的平板电脑:-)并拼命旋转它在风景 请参阅Jake Wharton的回答(谢谢!)http://developer.android.com/design/patterns/actionbar.html