web-dev-qa-db-ja.com

ライトナビゲーションバー

ナビゲーションバーの色を黒(白のアイコン付き)から白(黒のアイコン付き)に変更したい。

望ましい結果( uCrop で見られるように:

Light Navigation Bar

Android:windowLightStatusBarでステータスバーの色を変更する方法を知っています。

ナビゲーションバーに同様のプロパティはありますか?

9
lopez.mikhael

これは、Android O. SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR から始めてかなり簡単になります。

4
lidkxx

Oreo +の使用から:

    <item name="Android:windowLightNavigationBar">true</item>

オレオ以前は、明るい色はサポートされていません(うまく)。

1
Diolor

V26 /styles.xmlでナビゲーションバーの背景色を制御できます。

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="AppTheme" parent="AppTheme.Base">
        ...
        <item name="Android:navigationBarColor">@Android:color/white</item>
    </style>
</resources>

ナビゲーションバーのボタンの色を明るい背景に合わせるには、アクティビティのDecorViewに2つのフラグを設定する必要があります。

あなたの活動では:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
    View decorView = getWindow().getDecorView();
    decorView.setSystemUiVisibility(FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS | 
                                    SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR);
}

これを有効にするには、ウィンドウがFLAG_DRAWS_SYSTEM_BAR_BACKGROUNDSを要求する必要がありますが、FLAG_TRANSLUCENT_NAVIGATIONは要求しません。

参照: https://developer.Android.com/.../View#SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR

1
Bert Wijnants

これをアプリケーションのBaseThemeに追加します

<item name="Android:navigationBarColor">@color/yourNavigationColor</item>
1
Ravi Teja