web-dev-qa-db-ja.com

ステータスバーを黒のアイコンで白にするにはどうすればよいですか?

アプリのステータスバーの色を変更して、黒のアイコンが付いた白になるようにします(白のアイコンが付いたデフォルトの黒の代わりに)。これを行う方法はありますか?

52
Jon

Android M(api level 23)を使用すると、Android:windowLightStatusBar属性。

編集:

Pdroidが述べたように、これもプログラムで実現できます。

getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR); 
87
bugraoral

グレーのアイコンで白いステータスバーを作成することができます。 SDK> = 23の場合:

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="Android:windowLightStatusBar">true</item>
</style>

styles.xmlでcolorPrimaryを白に設定しますまたはプログラムで:

getWindow().setStatusBarColor(Color.WHITE);
26
Rammgarot

Kotlinでのアクティビティに追加したばかりです。

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                window.decorView.systemUiVisibility =View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR
                window.statusBarColor = Color.WHITE
            }
9
Serg Burlaka

これをあなたのスタイルに追加するだけです

<item name="Android:windowDrawsSystemBarBackgrounds">true</item>
<item name="Android:statusBarColor">@Android:color/transparent</item>

Android:windowDrawsSystemBarBackgroundstrue *に設定します。これは、以下で説明するフラグです。

このWindowがシステムバーの背景の描画を担当するかどうかを示すフラグ。 trueで、ウィンドウがフローティングでない場合、システムバーは透明な背景で描画され、このウィンドウの対応する領域は{@link Android.R.attr#statusBarColor}および{@link Android.Rで指定された色で塗りつぶされます.attr#navigationBarColor}。 {@link Android.view.WindowManager.LayoutParams#FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS}に対応します。

これを手動でカスタマイズするためにROM全体を制御できる場合を除き、この方法はありません。あなたがすることをお勧めすることは、グーグルドライブのようにテーマを通してステータスバーの色に明るい灰色を使用することです。

編集:これはAndroid Mで変更されたため、@ Wrekckerの回答を参照してください。

1
k0sh