2016-05-19 15 views
0

アクションバーのカラーをダイナミックに設定しました。ステータスバーの色を更新する方法も、ドロワーで透明にする方法

私はこの方法をしようとしている:あなたが見ることができますどのように

getSupportActionBar().setBackgroundDrawable(new ColorDrawable(color)); 
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { 
    float[] hsv = new float[3]; 
    Color.colorToHSV(color, hsv); 
    hsv[2] *= 0.8f; 
    color = Color.HSVToColor(hsv); 
    getWindow().setStatusBarColor(color) 
} 

が、私はアクションバーの色を設定すると、ステータスバーにsettedされる色を暗く作ってるんです。これが正しい方法かどうかは分かりませんが、今まではうまくいきます。

問題は、色が透明でない引き出しを開くときです。私はここでどうすればいいですか?

+0

引き出しの意味は?なぜあなたはそれを隠さないのですか? – UDKOX

+0

drawer =ナビゲーションビュー/メニュー –

+1

あなたの引き出しに 'android:fitsSystemWindow =" true "'を使用する必要があるためです。 'DrawerLayout'はステータスバーの色をオーバーライドし、色を変更したい場合は' NavigationDrawer'メソッドを使う必要があります。残念ながら、私は今それを覚えていませんが、名前は "バー"または "ステータス"を持っています –

答えて

1

あなたは以下を使用してこれを行うことができます、ツールバーを保持し、活動に

onCreate()に追加:スタイル-V21では

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { 
    int flag = getWindow().getDecorView().getSystemUiVisibility(); 
    getWindow().getDecorView().setSystemUiVisibility(flag | View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN); 
} 

を:

<item name="android:windowTranslucentStatus">false</item> 
<item name="android:statusBarColor">#30000000</item> <!-- This is gonna make status bar darker by 20% --> 

この必要がありますそれが働くには十分である。

+0

動作しません...どこで色をディナムに設定しますか? –

+0

ツールバーを使用してsupportActionBarとして設定している場合、そのツールバーへの参照が必要です。そのため、ツールバーの背景色を変更するだけです。 'ツールバーのツールバー=(ツールバー)findViewByID(R.id.toolbar);' 'setSupportActionBar(ツールバー);' '//ツールバーの背景色を変更する –

+0

私のコードによれば、私ですか? –