2013-08-22 9 views
11

サポートライブラリ内のActionBarを完全に透明にしたいと思っていますが、バックグラウンドの描画が可能なため、バックグラウンドの描画が可能ではありません。半透明の背景を置くと、その背景にはデフォルトの背景があります。ActionBarCompat&Transparency

誰もその背景を削除する方法を知っていますか?

これは何が起こるかです:

Actionbar

背景描画可能のためのコード:

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

あなたが見ることができるように、描画可能で、デフォルトグレーの背景と重なっている透明の青を持っています。

+1

[これを見る](http://cyrilmottier.com/2013/05/24/pushing-the-actionbar-to-the-next-level/) – Ahmad

+0

ありがとう、アフマド、あなたのリンクはとても役に立ちました。私はSDKの新しいバージョンで動作しますが、APIレベル11の下ではクラッシュします...私はそれが動作するように管理すれば私の答えを更新します – CristianGuerrero

+0

アクションバーの下位互換性を提供する以前のバージョンのActionbar Sherlockを使用します。 –

答えて

22

わかりました。私は解決策がSDKを使いこなしているのを発見しました。私の質問に示すように

  • が背景描画可能を作成します。 それは非常に簡単であると思われる、あなたは3つの事を行う必要があります。
  • そうのようなアクションバーのスタイルを作成します。

    <!-- 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> 
    
  • がサポート方法を使用してアクションバーのオーバーレイ用のウィンドウ機能を使用します(定数のAPIレベルに関するEclipseの警告を無視し、私は警告を削除するSuppressLintアノテーションを使用):

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

ありがとう、これも私のために働いた。 –

+1

'supportRequestWindowFeature(Window.FEATURE_ACTION_BAR_OVERLAY);'私のために働いた。ありがとう – zackygaurav

+0

コードはあなたのコメントなしで動作しません@zackygaurav、ありがとう –

6

ChristianGuerreroの答えは素晴らしいですが、あなたは直接アイテムを置く必要があります。

AppThemeスタイル内の0
<item name="android:windowActionBarOverlay">true</item> 

。次に、onCreateメソッドに何も追加する必要はありません。

関連する問題