web-dev-qa-db-ja.com

Androidでナビゲーションバーのアイコンの色を変更する

Androidのナビゲーションバーを変更する必要があります。下の画像の右側の「ライト」バリアントと同じように  https://www.google.co.in/design/spec/layout/structure.html#structure-system-bars に記載されています。

これで、ナビゲーションバーの背景を変更できます

"Android:navigationBarColor"

私は得る

enter image description here

しかし、ボタンの色を暗い色に変更する方法はないようです。

誰もがその方法を知っています。

PS:

NavigationButtonを担当するクラスのAOSPで調査していると、 NavigationBarView.JavaPhoneStatusBar.JavaPhoneWindowManager.Javanavigation_bar.xml

私は、ic_sysbar_recentおよび色合いを変更します。しかし、これらはプライベートであり、私は彼らの参照を得ることができません。

また、xposedライブラリを使用してそれを行う人々を見てきました L-NAVBAR ですが、外部ライブラリは使いたくありません。

32
Gaurav Vashisth

API 27(Android 8.1)以降を使用している場合は、テーマでこれを使用して実現できます。

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

values-v27というフォルダーを作成し、テーマのバージョン(styles.xml内)に明るいナビゲーションバーと上記のコードを配置して、暗いナビゲーションバーボタンを取得できます。
この方法では、Android 8.0以下のユーザーは標準(黒)ナビゲーションバーを取得し、Android 8.1以上のユーザーは暗いボタンの付いた白いnavbar。

23
Carlos

Android Oから始めます。

View.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR);

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

ドキュメント: https://developer.Android.com/reference/Android/view/View.html#SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR

12
lidkxx