Viv*_*wal 14 android android-actionbar
有没有办法在ActionBar for HoneyComb +的菜单项之间显示Divider.
有些帖子说只有当菜单项有android:showAsAction ="withText"时才会显示分隔符.
我想只显示Icon而不是Text.
我通过实现Action Bar兼容性成功地展示了Divider for Pre-HoneyComb.
我不想使用ActionBarSherlock,因为在这篇文章中给出了Android操作栏sherlok没有显示divider,因为它是时候在我的所有项目中从Action Bar Compatibility更改为ActionBarSherlock.
当我看到Android Source时,我发现Divider只有当它有如下所示的文本时才显示(来自ActionMenuItemView)
public boolean needsDividerBefore() {
return hasText() && mItemData.getIcon() == null;
}
public boolean needsDividerAfter() {
return hasText();
}
Run Code Online (Sandbox Code Playgroud)
有没有办法可以为ActionBar提供ActionMenuItemView的实现,其中needsDividerBefore()总是给出true
Viv*_*wal 12
我自己在http://android-developers.blogspot.in/2011/04/customizing-action-bar.html的帮助下找到了答案.然而,这并没有完全解决我的问题.它为Title添加了一个分隔符,还为主页Icon添加了一个分隔符.还有左右分隔符.这也是可调整的.
我在我的主题中添加了android:selectableItemBackground.
<item name="android:selectableItemBackground">@drawable/action_bar_item_selector</item>
Run Code Online (Sandbox Code Playgroud)
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>
Run Code Online (Sandbox Code Playgroud)
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>
Run Code Online (Sandbox Code Playgroud)
您可以使用自定义样式覆盖现有主题,例如
<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>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
35447 次 |
| 最近记录: |