私のアプリでは、下部のナビゲーションバーの色を変更する必要があります。多くの投稿を見ましたが、解決策が見つかりません。 appCompatライブラリを使用しています。
v21/styles.xml
<style name="AppTheme" parent="Theme.AppCompat.Light">
<item name="Android:windowBackground">@drawable/bgpreview</item>
<item name="Android:colorPrimary">@color/MyColor</item>
<item name="Android:colorPrimaryDark">@color/MyColor</item>
<item name="Android:windowContentOverlay">@null</item>
<item name="Android:textColorPrimary">@color/MyColor</item>
<item name="colorAccent">@color/MyColor</item>
<!-- darker variant for the status bar and contextual app bars -->
<item name="Android:windowContentTransitions">true</item>
<item name="Android:windowAllowEnterTransitionOverlap">true</item>
<item name="Android:windowAllowReturnTransitionOverlap">true</item>
<item name="Android:windowSharedElementEnterTransition">@Android:transition/move</item>
<item name="Android:windowSharedElementExitTransition">@Android:transition/move</item>
<item name="windowActionBar">false</item>
<item name="Android:textAllCaps">false</item>
</style>
内部で行うことができますstyles.xmlを使用して
<item name="Android:navigationBarColor">@color/theme_color</item>
または
window.setNavigationBarColor(@ColorInt int color)
http://developer.Android.com/reference/Android/view/Window.html#setNavigationBarColor(int)
このメソッドはAndroid Lollipopで導入されたもので、APIバージョン<21では動作しません。
2番目の方法(KitKatで動作)は、マニフェストでwindowTranslucentNavigationをtrueに設定し、ナビゲーションバーの下に色付きのビューを配置します。
プログラムで行う方法は次のとおりです
if (Android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.Lollipop) {
getWindow().setNavigationBarColor(getResources().getColor(R.color.your_awesome_color));
}
Compatライブラリを使用:
if (Android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.Lollipop) {
getWindow().setNavigationBarColor(ContextCompat.getColor(this, R.color.primary));
}
values-v21/style.xmlフォルダー内のxmlでこれを行う方法は次のとおりです
<item name="Android:navigationBarColor">@color/your_color</item>
ナビゲーションバーの色を変更する方法を次に示します。
XMLによる
1- values-v21/style.xml
<item name="Android:navigationBarColor">@color/navigationbar_color</item>
または、values /フォルダのみを使用して実行する場合は、-
2- values/style.xml
<resources xmlns:tools="http://schemas.Android.com/tools">
<item name="Android:navigationBarColor" tools:targetApi="21">@color/navigationbar_color</item>
ナビゲーションバーの色をプログラミングで変更することもできます。
if (Build.VERSION.SDK_INT >= 21)
getWindow().setNavigationBarColor(getResources().getColor(R.color.navigationbar_color));
Compat Libraryを使用して-
if (Build.VERSION.SDK_INT >= 21) {
getWindow().setNavigationBarColor(ContextCompat.getColor(this, R.color.primary));
}
詳細についてはリンクを見つけてください http://developer.Android.com/reference/Android/view/Window.html#setNavigationBarColor(int)
values-v21/style.xmlフォルダーに次の行を追加できます。
<item name="Android:navigationBarColor">@color/theme_color</item>
テーマエディターを使用して、テーマを変更することもできます:
ツール-> Android->テーマエディター
そうすれば、追加のコンテンツを.xmlまたは.classファイルに入れる必要さえありません。
styles.xml file\app\src\main\res\values\styles.xmlで直接変更できます
これは古いバージョンで動作し、キットカットで変更してここに来ました。
<color name="blackColorPrimary">#000001</color> (not #000000)
<item name="Android:navigationBarColor" tools:targetApi="Lollipop">@color/blackColorPrimary</item>
問題は、Androidの上位バージョンが#000000を透過的にすることです