2013-08-22 16 views
11

ActionBar'ı destek kitaplığında tamamen şeffaf yapmak isterim, ancak arka plan taslağını değiştirmenin arkaplan yığısından bu yana yeterli olmayacağı anlaşılıyor. Yarı saydam bir arka plan koyduğunuzda, arka planın arkasındaki varsayılan arkaplanla sonuçlanır.ActionBarCompat & Transparency

Bu arka planı kaldırmanın bir yolu bilen var mı?

Bu

olur:

Actionbar

çekilebilir arka plan için kod: Gördüğünüz gibi

<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle"> 
    <solid android:color="#66336688"/> 
</shape> 

, drawable varsayılan gri arka çakışan saydam mavi vardır .

+1

[Şuna bak] (http://cyrilmottier.com/2013/05/24/pushing-the-actionbar-to-the-next-level/) – Ahmad

+0

Teşekkürler Ahmad, bağlantınız çok kullanışlıdır. SDK'nın yeni sürümlerinde çalışıyorum, ancak API 11 seviyesinin altında çöküyor ... Eğer çalışmayı başarabilirsem, cevabımı güncellemeyi başarabilirim – CristianGuerrero

+0

Önceki versiyonlar için Actionbar Sherlock, geri dönüşlü bir hareket çubuğu sağlar. –

cevap

22

Tamam, çözümün SDK ile karıştırıldığını buldum. Sorumun gösterildiği gibi

  • bir arka plan çizilebilir oluşturun: Bu oldukça basit görünüyor, sen 3 şeyler yapmak gerekir.
  • şöyle bir İşlem Çubuğu stili oluşturma:

    <!-- Application theme. --> 
    <style name="AppTheme" parent="Theme.AppCompat.Light"> 
        <item name="android:actionBarStyle">@style/MyActionBar</item> 
    
        <!-- Support library compatibility --> 
        <item name="actionBarStyle">@style/MyActionBar</item> 
    </style> 
    
    <!-- ACTION BAR STYLES --> 
    <style name="MyActionBar" parent="@style/Widget.AppCompat.ActionBar"> 
        <item name="android:background">@drawable/actionbar_background</item> 
        <item name="android:windowActionBarOverlay">true</item> 
    
        <!-- Support library compatibility --> 
        <item name="background">@drawable/actionbar_background</item> 
        <item name="windowActionBarOverlay">true</item> 
    </style> 
    
  • Destek yöntemi kullanılarak İşlem Çubuğu bindirme için Pencere özelliğini kullanın (sabit API düzeyinde ilgili Eclipse'nın uyarıyı göz ardı; ben uyarıyı kaldırmak için SuppressLint ek açıklama kullanılır):

    @SuppressLint("InlinedApi") @Override protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    supportRequestWindowFeature(Window.FEATURE_ACTION_BAR_OVERLAY); 
    setContentView(R.layout.activity_home);} 
    
+0

Teşekkürler bu benim için de çalıştı. –

+1

'supportRequestWindowFeature (Window.FEATURE_ACTION_BAR_OVERLAY);' benim için çalıştı. Teşekkürler – zackygaurav

+0

kod @zackygaurav, yorumunuz olmadan çalışmaz teşekkür ederim –

6

ChristianGuerrero cevap harika ama doğrudan öğeyi koymalıyız:

AppTheme stilinin içinde

. Sonra onCreate yönteminize herhangi bir şey eklemeniz gerekmez.

İlgili konular