是否有一种在Android 3.0中的操作栏项之间添加分隔符的标准方法?

时间:2011-05-06 10:34:34

标签: android layout menuitem android-3.0-honeycomb android-actionbar

我尝试在我的应用中自定义操作栏的外观时遇到了一些问题。我希望能够使用像素宽的分隔线来组合您在许多本机应用程序(例如Gmail,日历)中看到的操作栏项目。我找到了一种方法来添加菜单项并将'android:actionLayout'属性设置为分隔符的自定义布局:

<View
  android:background="@color/LightGray"
  android:layout_marginTop="5dip"
  android:layout_marginBottom="5dip"
  android:layout_width="1dip"
  android:layout_height="fill_parent" />

这很好用,但问题是它被视为一个菜单项,操作栏似乎将菜单项的数量限制为4 - 任何其他菜单都被推入溢出菜单。

所以我猜我要问的是,是否有一种标准的方法来添加项目分隔符,而不必使用具有自定义视图的菜单项,并且不会计入操作栏项目的限制?

提前致谢!

3 个答案:

答案 0 :(得分:11)

我不会尝试强制将分隔符放入系统不会自动添加它们的位置,因为它会使您的应用程序与平台不一致。默认行为是:

  • 溢出与其他之间的分隔。
  • 文本与其他项目之间的分隔符,用于消除文本所属项目的歧义。

答案 1 :(得分:3)

我找不到标准方式,但我这样做的方法是使用android:actionLayout属性作为菜单项,然后将分隔符放在那里。

答案 2 :(得分:2)

当谷歌发布3.0 SDK时,我得到了一个快速的演示应用,看看ActionBar是如何工作的,只是回顾它,如果我使用没有Icon drawables的Text Items,那么我会得到自动分割器。

我的menu.xml文件是这样的:

<menu xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:id="@+id/menu_text" android:showAsAction="ifRoom" android:title="@string/action_label_text" />
  <item android:id="@+id/menu_text" android:showAsAction="ifRoom" android:title="@string/action_label_text" />
  <item android:id="@+id/menu_text" android:showAsAction="ifRoom" android:title="@string/action_label_text" />
  <item android:id="@+id/menu_text" android:showAsAction="ifRoom" android:title="@string/action_label_text" />
</menu>

也许这不适用于图标?

或者考虑一下,也许图标的大小有效?