当前位置: 首页 > 知识库问答 >
问题:

操作栏菜单项分割器

萧献
2023-03-14

有没有一种方法来显示在操作栏中的HoneyComb菜单项之间的分隔符。

有些帖子说,只有当菜单项具有android时,分隔符才会显示: show AsAction="with Text"。

我想只显示图标,而不是文本。

我通过实现一个操作栏兼容性,成功地展示了Pre-HoneyComb的分隔器。

我不想使用ActionBarSherlock在这篇文章中给出的Android actionbar sherlok不显示分隔器,因为它将是时候在我的所有项目中从Action Bar兼容性更改为ActionBarSherlock。

当我看到Android源代码时,我发现只有当它有如下所示的文本时才会显示分隔符(来自ActionMenuItemView)

public boolean needsDividerBefore() {
    return hasText() && mItemData.getIcon() == null;
}

public boolean needsDividerAfter() {
    return hasText();
}

有没有一种方法,我可以给我的实现为ActionMenuItemView为ActionBar在那里需要分割之前()将始终给真

共有3个答案

端木鹏
2023-03-14

这是我找到的最好的方法。只需在菜单中添加一个包含虚拟项的组:

菜单xml

<group>
    <!--dummy item to get a nice separator-->
    <item
        android:title=""
        android:showAsAction="always"
        android:enabled="false" />
</group>

<item android:id="@+id/action_example"
    ...

虚拟项的标题为空,因此它看起来不可见;虚拟项被禁用,因此无法单击。

阎淮晨
2023-03-14

您可以使用自定义样式覆盖现有主题,例如:

<style name="CustomTheme" parent="android:Theme.Holo.Light">
    <item name="android:actionBarStyle">@style/ActionBar</item>
</style>

<style name="ActionBar" parent="android:style/Widget.Holo.Light.ActionBar">
    <item name="android:background">@color/action_bar_background</item>
    <item name="android:showDividers">beginning</item>
    <item name="android:divider">@color/action_bar_divider</item>
</style>
闾丘才哲
2023-03-14

在http://android-developers.blogspot.in/2011/04/customizing-action-bar.html的帮助下,我自己找到了答案。然而,这并不能完全解决我的问题。它为标题添加了一个分隔符,也为家庭图标添加了一个分隔符。还有左右分隔符。这也是可调的。

我添加了android: selectableItembackground到我的主题。

<item name="android:selectableItemBackground">@drawable/action_bar_item_selector</item>

操作栏项选择器。xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

    <item android:drawable="@drawable/actionbar_compat_separator"></item>

    <item android:left="1dp" android:drawable="@drawable/actionbar_compat_item"></item>

</layer-list>

actionbar_compat_separator-我的分离器是可画的吗

actionbar_compat_项是我的actionbar项选择器。

编辑

我找到了解决问题的更好办法。它工作得很好。

<item name="android:actionButtonStyle">@style/ActionButton</item> to my Theme

<style name="ActionButton" parent="android:style/Widget.Holo.Light.ActionButton">
        <item name="android:background">@drawable/action_bar_item_selector</item>
    </style>
 类似资料:
  • 如何从操作栏禁用“选项”菜单项? 我做了我自己的自定义栏,用于显示*. png标志,但我不想显示选项菜单的三个点按钮。 我试图找到一些解决办法,但没有任何效果。

  • 我有一个活动有3个碎片(不是标签)。我有几个动作条项目,我想隐藏他们时,某个片段是存在的。我该怎么做呢?

  • 我的问题是一个热门问题,我阅读并尝试了很多相关帖子,但我没有实现预期的结果,显示菜单。我还没有找到正确的解决方案。 我的应用程序可以在Android 4 . 2 . 2版本上完美运行。(版本代码17)我在Galaxy Duos手机上试用过。 我使用Android版本7,0(版本代码24)我尝试了更多目标SDK版本的变体,具有8,19,24,25并且没有目标SDK规范。 以下是一些相关的部分 -盖德

  • 你好 由于某些原因,该图标从未显示在操作栏上,我使用了ifRoom |与text的组合,但仍然没有显示。我也尝试过在风景中旋转。我正在使用genymotion 4.4.2 我正在膨胀菜单中的一个片段: 我在纵向和横向模式下尝试了硬件nexus5,但没有图标。 我也尝试过使用以下方法,但也不起作用: 非常感谢任何建议,

  • 我有旧式菜单应用程序。在改变主题到全息和切换目标SDK版本到14后,软菜单按钮消失了(这是好的),但使用菜单按钮在操作栏显示文本菜单大部分离屏幕,你可以看到在附上的图像。你有什么办法解决这个问题吗? 我已经解决了。清单参数中有问题: 在改变了任何否认为真之后,这个问题就消失了。

  • 我正在开发小型Android应用程序,其中我使用带有一些菜单项的操作栏。一个菜单项包含子菜单。现在我想做的是始终显示带有文本和图标的菜单项。 我按照以下方式定义菜单项。 现在我的操作栏正确显示我的项目;唯一的问题是,当窗口竖屏时,它只显示图像,当窗口处于横向模式时,它同时显示图像和文本。但是我想要两种模式下的图像和文本。 怎么做?有什么办法解决这个问题吗?