【问题标题】:Android actionbar sherlok doesn't show dividerAndroid actionbar sherlok 不显示分隔符
【发布时间】:2012-02-14 09:13:34
【问题描述】:

我正在使用 sherlok-actionbar 并尝试在操作按钮之间应用分隔符。 我有样式,但分隔线不可见,为什么?

<style name="Theme.SherlockCustom" parent="@style/Theme.Sherlock.Light">
    <item name="abBackground">@drawable/actionbar_gradient</item>
    <item name="abIcon">@drawable/logo</item>       
    <item name="abDivider">@drawable/ab_divider</item>
</style>

谢谢!

【问题讨论】:

    标签: android actionbarsherlock


    【解决方案1】:

    ActionBarSherlock v3.5 已更新为包含来自 Ice Cream Sandwich 的所有与操作项相关的视图和类的源代码。这意味着在两个操作项之间放置分隔符的规则与在 ICS 上的规则相同。

    分隔线只会在以下之间显示:

    • 纯文本后跟纯文本
    • 仅图标,后跟纯文本
    • 文本和图标,后跟纯文本

    如果您想覆盖此行为(仅限 3.0 之前版本),请对 ActionItemView.java 进行以下更改:

    【讨论】:

    • 谢谢,我期待得到更好的答案!
    • 为什么 Google Android 应用程序会在图标之间显示分隔符?查看 YouTube 应用
    • 因为他们使用自己的库。
    • 这不适用于 4.0.2 。我怎样才能在那里达到同样的效果?
    • 由于ActionBarSherlock v4.1.0,需要修改的源在com/actionbarsherlock/internal/view/menu/ActionMenuItemView.java内,搜索needsDividerBefore并应用建议的补丁/修复
    【解决方案2】:

    您可以做的是在操作栏项目旁边添加一个看起来像分隔符的视图(适用于所有 Android 版本)

    <item
        android:actionViewClass="com.example.ActionSeparatorView"
        android:showAsAction="always"
        android:title="@null"/>
    

    ActionSeparatorView 是 ImageView 的简单扩展,带有您想要显示为分隔符的可绘制对象

    public class ActionSeparatorView extends ImageView {
    public ActionSeparatorView (Context context) {
        super(context);
        setImageDrawable(getResources().getDrawable(R.drawable.separator));
      }
    }
    

    【讨论】:

    • 像魅力一样工作。只爱你。 (Y)
    • 我尝试使用这种方法,但会出现分隔符,但它会增加菜单项之间的空间。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-03
    • 1970-01-01
    • 2019-01-12
    • 1970-01-01
    • 2015-01-08
    • 2013-08-20
    • 1970-01-01
    相关资源
    最近更新 更多