13

尝试在我的应用程序中自定义操作栏的外观时遇到了一个小问题。我希望能够使用像素宽的分隔线来对您在许多本机应用程序(例如 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 - 任何其他人都会被推入溢出菜单。

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

提前致谢!

4

3 回答 3

11

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

  • 溢出和其他之间的分隔符。
  • 文本和另一个项目之间的分隔线,它将消除文本所属的项目的歧义。
于 2011-08-11T11:00:01.607 回答
3

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

于 2011-08-08T22:47:23.587 回答
2

当 Google 发布 3.0 SDK 时,我得到了一个快速演示应用程序,以查看 ActionBar 的工作原理,然后回顾一下,如果我使用没有图标可绘制对象的文本项,那么我会绘制自动分隔线。

我的 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>

也许这不适用于图标?

或者想一想,也许图标的大小有影响?

于 2011-06-16T14:39:37.410 回答