Цвет панели навигации для леденца

В моем приложении мне нужно изменить цвет нижней панели навигации. Я смотрел много сообщений, но не мог найти решение. Я использую библиотеку appCompat. Нужна помощь, пожалуйста. Спасибо заранее.

enter image description here

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>

Ответ 1

Это можно сделать внутри 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.

Второй метод (работает в KitKat) - установить windowTranslucentNavigation в true в манифесте и поместить цветное представление под панель навигации.

Ответ 2

Вот как это сделать программно:

if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {                
   getWindow().setNavigationBarColor(getResources().getColor(R.color.your_awesome_color));
}

Использование библиотеки сокетов:

if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
    getWindow().setNavigationBarColor(ContextCompat.getColor(this, R.color.primary));
}

Вот как это сделать с помощью xml в папке values-v21/style.xml:

<item name="android:navigationBarColor">@color/your_awesome_color</item>

Ответ 3

Есть несколько способов изменить цвет панели навигации.

<сильные > значения-V21/style.xml

<item name="android:navigationBarColor">@color/navigationbar_color</item>

<сильные > значения /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));

Использование библиотеки совместимости -

if (Build.VERSION.SDK_INT >= 21) {
    getWindow().setNavigationBarColor(ContextCompat.getColor(this, R.color.primary));
}

Ответ 4

Вы можете добавить следующую строку в папку values-v21/style.xml:

<item name="android:navigationBarColor">@color/theme_color</item>

Ответ 5

Вы можете изменить его непосредственно в файле styles.xml:\app\src\main\res\values ​​\ styles.xml

Эта работа над более старыми версиями, я менял ее в KitKat и приходил сюда.