标签和徽标之间的边距
除非您使用自定义选项卡实现创建自定义视图,否则只有一种方法可以在选项卡和徽标之间创建空间(假设标题已隐藏)设置选项卡栏的左侧填充。为此,您的主题必须包含:
<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。您可以在此处为每个菜单项定义自定义布局。