Pregunta Android lollipop cambiar el color de la barra de navegación


En mi aplicación, necesito cambiar el color de la barra de navegación inferior. Vi muchas publicaciones pero no puedo encontrar la solución. Estoy usando la biblioteca appCompat. Necesito ayuda por favor Gracias por adelantado.

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>

74
2018-01-08 11:30


origen


Respuestas:


Se puede hacer adentro styles.xml utilizando

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

o

window.setNavigationBarColor(@ColorInt int color)

http://developer.android.com/reference/android/view/Window.html#setNavigationBarColor(int)

Tenga en cuenta que el método se introdujo en Android Lollipop y no funcionará en la versión API <21.

El segundo método (funciona en KitKat) es establecer windowTranslucentNavigation en verdadero en el manifiesto y colocar una vista en color debajo de la barra de navegación.


128
2018-01-08 11:34



Aquí es cómo hacerlo programáticamente: 

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

Usando la biblioteca de compatibilidad:

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

Aquí se muestra cómo hacerlo con xml en la carpeta values-v21 / style.xml:

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

54
2018-04-08 12:22



Estas son algunas formas de cambiar el color de la barra de navegación.

Por el XML

1- values-v21 / style.xml

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

O si desea hacerlo solo usando los valores / carpeta, entonces-

2- values ​​/ style.xml

<resources xmlns:tools="http://schemas.android.com/tools">

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

También puede cambiar el color de la barra de navegación Por programación.

 if (Build.VERSION.SDK_INT >= 21)
    getWindow().setNavigationBarColor(getResources().getColor(R.color.navigationbar_color));

Mediante el uso de la biblioteca de compatibilidad-

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

encuentre el enlace para más detalles- http://developer.android.com/reference/android/view/Window.html#setNavigationBarColor(int)


25
2017-09-04 23:16



Puede agregar la siguiente línea en values-v21 / style.xml carpeta:

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

8
2017-07-15 11:34



Puedes cambiarlo directamente en styles.xml archivo \ app \ src \ main \ res \ values ​​\ styles.xml

Este trabajo en versiones anteriores, lo estaba cambiando en KitKat y vengo aquí.


0
2017-09-21 14:26



También puede modificar su tema usando el Editor de temas haciendo clic en:

Herramientas -> Android -> Editor de temas

Entonces, ni siquiera necesita poner algo de contenido adicional en sus archivos .xml o .class.


0
2018-01-24 09:52