动作条菜单项分频器动作条菜单项分频器(ActionBar MenuItem Divider)

2019-06-14 14:36发布

有没有办法来显示ActionBar中的菜单项用于蜂窝+之间的分隔。

有些帖子里说,该分频器将显示只有当菜单项具有机器人:showAsAction =“withText”。

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

我通过实现一个操作栏的兼容性成功表示分频器的预蜂窝。

我不想使用ActionBarSherlock在这篇文章给出的Android动作条sherlok不显示分频器 ,因为这将是一次从操作栏的兼容性改变我所有的项目ActionBarSherlock。

当我看到Android的源代码我发现,分频器将只显示当它有文字,如下图所示(从ActionMenuItemView)

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

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

有没有办法,我可以给我的执行情况ActionMenuItemView的动作条,其中needsDividerBefore()总是会给真实的方式

Answer 1:

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

我加的android:selectableItemBackground我的主题。

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

action_bar_item_selector.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_item是我的动作栏项目的选择。

EDITED

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

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


Answer 2:

您可以覆盖现有的主题,自定义样式,用于如

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


Answer 3:

更新:这似乎并不为Android棒棒糖5及以上的工作:


这是我找到的最好方式。 只需添加一组虚拟项目到您的菜单:

menu.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"
    ...

虚设项目有一个空头衔所以才出现无形的,它禁止,所以它不能被点击。



文章来源: ActionBar MenuItem Divider