2012-01-02 34 views
31

我正在开发一款全屏应用,但会利用ActionBar的一些功能。随着冰淇淋Sandwhich发布,我看到我得到一个蓝色的分隔线/分隔符作为ActionBar的一部分。通常情况下,这对一致性很好,但在我的情况下,我需要删除分隔线。Android ICS:删除ActionBar中的蓝色分隔线?

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

尝试使用“android:style/Widget.Holo.ActionBar”作为父母设置自定义主题。 然而,由于这样的设置的一个下面没有效果

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

这可能有助于:http://stackoverflow.com/questions/6072226/how-to-style-the-menu-items-on-an-android-action-bar 另外,你还记得选择你的自定义Manifest或您的代码中的主题? – 2012-01-03 19:08:53

回答

65

含有蓝色底行中的图形资产是在操作栏的容器视图的背景和使用默认全息深色主题时被设置为@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> 

注意:全息深/浅的动作条有固体和透明的风格,似乎这蓝线默认为透明风格全息暗的动作条是透明的默认和全息光操作栏默认情况下固体。 。

+0

优秀,解决了问题 – dparnas 2012-01-04 19:48:53

+0

android:Theme.Holo仅适用于API 11.我如何为旧API做此操作。 – androidevil 2013-07-31 18:25:08

+9

注意:设置' @ android:color/transparent'会移除分隔符。 – 2014-04-07 01:27:04

2

这里有一个简单的方法来去除分频器,使用actionbarcompat从支持库从API 07的工作原理:

@Override 
public void onCreate(Bundle savedInstanceState) { 
     //... 
     getSupportActionBar().setBackgroundDrawable(
      getResources().getDrawable(R.drawable.whatever_you_want)); 
     //... 
} 
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:文字颜色

-2

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