我正在开发一款全屏应用,但会使用ActionBar的一些功能。随着Ice Cream Sandwhich发布,我看到我得到一个蓝线分隔符/分隔符作为ActionBar的一部分。通常,这对于一致性是有好处的,但在我的情况下,我需要删除分隔符。
如何在ICS中移除或设置ActionBar的分隔符?
尝试使用“android:style / Widget.Holo.ActionBar”作为父级设置自定义主题。 但是,如下所示的设置无效
<item name="android:divider">#FFFFFF</item>
答案 0 :(得分:65)
包含蓝色底线的图形资源是操作栏的容器视图的背景,使用默认的Holo Dark主题时设置为@android:drawable/ab_transparent_dark_holo
。
要删除此行,您需要为操作栏创建自定义样式(基于Widget.Holo.ActionBar
或Widget.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>
添加到您的应用主题。