ナビゲーションバーの色を黒(白のアイコン付き)から白(黒のアイコン付き)に変更したい。
望ましい結果( uCrop で見られるように:
Android:windowLightStatusBar
でステータスバーの色を変更する方法を知っています。
ナビゲーションバーに同様のプロパティはありますか?
これは、Android O. SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR から始めてかなり簡単になります。
Oreo +の使用から:
<item name="Android:windowLightNavigationBar">true</item>
オレオ以前は、明るい色はサポートされていません(うまく)。
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
これをアプリケーションのBaseTheme
に追加します
<item name="Android:navigationBarColor">@color/yourNavigationColor</item>