Android ICS:删除ActionBar中的蓝色分隔符?

时间:2012-01-02 19:52:40

标签: android android-actionbar

我正在开发一款全屏应用,但会使用ActionBar的一些功能。随着Ice Cream Sandwhich发布,我看到我得到一个蓝线分隔符/分隔符作为ActionBar的一部分。通常,这对于一致性是有好处的,但在我的情况下,我需要删除分隔符。

如何在ICS中移除或设置ActionBar的分隔符?

尝试使用“android:style / Widget.Holo.ActionBar”作为父级设置自定义主题。 但是,如下所示的设置无效

<item name="android:divider">#FFFFFF</item>

4 个答案:

答案 0 :(得分:65)

包含蓝色底线的图形资源是操作栏的容器视图的背景,使用默认的Holo Dark主题时设置为@android:drawable/ab_transparent_dark_holo

要删除此行,您需要为操作栏创建自定义样式(基于Widget.Holo.ActionBarWidget.Holo.Light.ActionBar(或.Solid变体)并设置android:background对于不包含底部边框的内容:

<style name="MyTheme" parent="android:Theme.Holo">
  <item name="android:actionBarStyle">@style/MyActionBar</item>
</style>

<style name="MyActionBar" parent="android:Widget.Holo.ActionBar">
  <item name="android:background">@drawable/your_background_here</item>
</style>

注意:Holo Dark / Light动作条有坚实透明的风格;默认情况下,此蓝色线条显示为透明样式。默认情况下,Holo Dark操作栏是透明的,默认情况下Holo Light操作栏是固定的。

答案 1 :(得分:2)

这是一种删除分隔符的简单方法,使用支持库中的actionbarcompat从API 07开始工作:

@Override
public void onCreate(Bundle savedInstanceState) {
        //...
        getSupportActionBar().setBackgroundDrawable(
            getResources().getDrawable(R.drawable.whatever_you_want));
        //...
}  

答案 2 :(得分:1)

将活动主题更改为Theme.Holo.Light.DarkActionBar会删除蓝线。

<style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar">
    <item name="android:windowBackground">@android:color/black</item>
    <item name="android:textColor">@android:color/white</item>
</style>

如果您仍想要黑色背景,您可能想要更改android:windowBackground和/或android:textColor

答案 3 :(得分:-2)

将此<item name="android:windowContentOverlay">@null</item>添加到您的应用主题。