web-dev-qa-db-ja.com

Android 4.4半透明のステータスとナビゲーションバーのスタイルAndroid 5.0

Android 4.4 KitKatでは、ステータスバーとナビゲーションバーを_Android:windowTranslucentStatus_および_Android:windowTranslucentNavigation_テーマ要素で透明に設定できます。その後、バーの下でアプリウィンドウが拡張され、ただし、Android 5.0 Lollipopではこれが変更され、グラデーションの代わりに単色の透明色が追加されました。Android 5.0は新しい_Android:statusBarColor_および_Android:navigationBarColor_要素は新しいマテリアルテーマの下にありますが、これらの要素を_@Android:color/transparent_に設定しようとすると、アプリウィンドウは拡張されず、_Android:windowTranslucentStatus_および_Android:windowTranslucentNavigation_その後_Android:statusBarColor_および_Android:navigationBarColor_は無視されます。

http://developer.Android.com/training/material/theme.html#StatusBar で説明されているものがありませんか?

enter image description here

37
AxeEffect

Android:windowTranslucentStatusfalseに設定し、Android:statusBarColor@Android:color/transparentに設定します。

次に、以下のコードを追加します。

getWindow().getDecorView().setSystemUiVisibility(
        View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);

ナビゲーションバーも半透明にする場合は、Android:navigationBarColor@Android:color/transparentに設定し、フラグView.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATIONも組み合わせます。

ナビゲーションバーで実験したことはありませんが、動作します。

64
suckgamony

以下の行をスタイルに追加します。

<item name="Android:windowTranslucentStatus">true</item>
<item name="Android:windowTranslucentNavigation">true</item>
7
Kuldeep Sakhiya

@ suckgamony's answer この質問に対する明確化:

  • ロリポップ以上で、_Android:statusBarColor_または_Android:navigationBarColor_を_@Android:color/transparent_は、ステータスバーまたはナビゲーションバーをそれぞれ作成します次の場合を除き、完全に透明:
  • _Android:windowTranslucentStatus_または_Android:windowTranslucentNavigation_がtrueに設定されている場合、ステータスバーまたはナビゲーションバー(それぞれ)は、@ AxeEffectが説明する無地の透明色に設定されます(再び、ロリポップの下)。
  • _Android:statusBarColor_および_Android:navigationBarColor_は、Androidバージョン21(Lollipop 5.0)以降)でのみ使用できます。 回答を参照 で説明されているように、 _Android:windowTranslucentStatus_または_Android:windowTranslucentNavigation_をKitKatと併用すると、完全な透明ではなく透明なグラデーションが提供されます。
3
CODE-REaD