【问题标题】:ActionBarSHerlock Tabs and Menu items: CustomizationActionBarSHerlock 选项卡和菜单项:自定义
【发布时间】:2013-01-03 19:17:55
【问题描述】:

我有一些关于如何自定义选项卡和菜单项的问题 - 如何设置徽标和选项卡之间的边距(它们都在一行中)以及如何在只有图标的菜单项之间放置垂直分隔符? (问题是当您将菜单项显示为文本或图标+文本时有垂直分隔符,但仅在图标的情况下没有)关于菜单项分隔符的另一件事是如何将此分隔符放在每个图标之前?

我看过所有的 actionbarsherlock 示例,其中有很多样式,并查看了有关它的其他资源,但我没有找到如何自定义这些东西。

【问题讨论】:

    标签: android actionbarsherlock


    【解决方案1】:

    标签和徽标之间的边距

    除非您使用自定义选项卡实现创建自定义视图,否则只有一种方法可以在选项卡和徽标之间创建空间(假设标题已隐藏)设置选项卡栏的左侧填充。为此,您的主题必须包含:

    <style name="MyTheme" parent="@style/Theme.Sherlock">
        <item name="actionBarTabBarStyle">@style/MyTabBarStyle</item>
        <item name="android:actionBarTabBarStyle">@style/MyTabBarStyle</item>
    </style>
    

    MyTabBarStyle 必须包含:

    <style name="MyTabBarStyle" parent="Widget.Sherlock.ActionBar.TabBar">
        <item name="android:paddingLeft">@dimen/my_left_padding</item>
    </style>
    

    请注意,您必须将此版本的MyTabBarStyle 设置在适当的位置,以便仅在选项卡放置在主操作栏中时显示(这通常发生在横向配置中),因此您应该将其放置在res/values-land/styles.xml.

    菜单项的分隔符

    您说得对,当菜单项显示为图标时,创建分隔线是个问题。您仍然可以使用小技巧来做到这一点 - 将分隔线编码为操作按钮背景。如果您使用这样的 9-patch 可绘制对象(缩放以获得更好的可见性):

    然后会创建一个绿色的分隔线(当然你也应该为其他状态创建版本)。

    要设置背景,你必须在主题中定义android:actionButtonStyle

    <style name="MyTheme" parent="@style/Theme.Sherlock">
        <item name="actionButtonStyle">@style/MyActionButtonStyle</item>
        <item name="android:actionButtonStyle">@style/MyActionButtonStyle</item>
    </style>
    

    并且样式必须定义背景:

    <style name="MyActionButtonStyle" parent="@style/Widget.Sherlock.ActionButton">
        <item name="android:background">@drawable/my_actionbutton_bg</item>
    </style>
    

    使用此解决方案,您可以在每个项目之前放置分隔符。请注意,如果显示溢出图标,您可能应该为android:actionOverflowButtonStyle 定义类似的背景。

    该问题的不同解决方案可能是为菜单项定义android:actionLayout。您可以在此处为每个菜单项定义自定义布局。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多