2012-04-17 52 views
11

我正在使用ActionBarSherlock 4.0.2。通過使用主題完全透明的ActionBarSherlock

我需要一個完全透明的操作欄(不含霓虹色底部分隔線)。因此,我有以下風格:

<style name="AppTheme" parent="@style/Theme.Sherlock"> 
    <item name="windowActionBarOverlay">true</item> 
    <item name="icon">@drawable/ic_home</item> 
    <item name="titleTextStyle">@style/ActionBarCompatTitle</item> 
    <item name="android:windowFullscreen">true</item> 
</style> 

通過使用上面的代碼,我仍然會有以下效果。

SherlockFragmentActivity wit divider and with half-transparent background

爲了禁用的背景下,我把下面的代碼中SherlockFragmentActivity#onCreate。然後問題消失了。

getSupportActionBar().setBackgroundDrawable(null); 

SherlockFragmentActivity without divider and with transparent background

不過,我想看看在styles.xml而不是Java代碼正在實施的解決方案,因爲我有不同的屏幕配置許多其他設備。我將styles.xml修改爲以下內容,而不使用前面提到的Java代碼中的修復。

<style name="AppTheme" parent="@style/Theme.Sherlock"> 
    <item name="windowActionBarOverlay">true</item> 
    <item name="icon">@drawable/ic_home</item> 
    <item name="titleTextStyle">@style/ActionBarCompatTitle</item> 
    <item name="android:windowFullscreen">true</item> 

    <item name="android:background">@drawable/transparent</item> 
    <item name="background">@drawable/transparent</item> 
</style> 

但是,霓虹燈分頻器仍然可見。看來我的修復使用android:backgroundbackground不起作用。我錯過了什麼嗎?

回答

24
<style name="AppTheme" parent="@style/Theme.Sherlock"> 
    <item name="actionBarStyle">@style/AppTheme.ActionBar</item> 
    <item name="android:actionBarStyle">@style/AppTheme.ActionBar</item> 
</style> 

<style name="AppTheme.ActionBar" parent="@style/Widget.Sherlock.ActionBar"> 
    <item name="background">@android:color/transparent</item> 
    <item name="android:background">@android:color/transparent</item> 
</style> 
+0

這個答案應該被接受。提供調試菜單是一個不錯的選擇! – Snicolas 2013-01-31 15:29:45

+0

嗨,這在Android 2.3中創建了一個灰色效果,但不是透明效果,爲什麼會這樣呢?請協助 – 2014-03-27 09:45:17

+0

好的,明白了,它在設備上運行良好,但不在仿真器上運行。我希望那是唯一的原因。 – 2014-03-27 09:49:05