2014-12-21 26 views
6

Come posso cambiare il colore/trasparenza della barra di navigazione da nero a un colore generico in dispositivi pre-Lollipop (ad esempio il colore della barra di stato o della barra delle azioni)?Cambia colore barra di navigazione, Android

Posso farlo utilizzando AppCompat o è possibile solo per SDK 21?

+1

Controllare questo [collegamento] (https: //x.appgyver .com/categories/3-user-interface-and-design/contents/16-customizing-navigation-bar-appearance) – BzH

+0

Questo (http://developer.xamarin.com/guides/android/user_interface/navigation_bar/Images/ 19 _-_ NavBar.png ) è la barra di navigazione che intendevo. –

risposta

10

È possibile impostare l'attributo navigationBarColor in un tema AppCompat o android:navigationBarColor in un tema nativo v21.

<style name="AppTheme" parent="@style/Theme.AppCompat.Light"> 
    ... 
    <item name="navigationBarColor">#123456</item> 
</style> 

https://developer.android.com/training/material/theme.html#StatusBar

Si noti che questo non funziona su dispositivi Pre-Lollipop, dal momento che questa funzione deve essere supportata dal sistema, che non è il caso su Android 4.4 o superiore.

+0

Grazie, ma sto cercando qualcosa che funzioni anche per i dispositivi pre-Lollipop (minSDK 11). –

+0

Questo non è possibile afaik – Floern

+0

E 'almeno possibile per i dispositivi Lollipop che usano appcompat in modo da non dover impostare il minSDK a 21? –

3

Un altro livello di codice modo:

window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); 
window.setStatusBarColor(getResources().getColor(R.color.DarkOrange)); 
window.setNavigationBarColor(getResources().getColor(R.color.red)); 

Inoltre, per modificare lo stato barra di colore, aggiungere la seguente riga:

window.setStatusBarColor(getResources().getColor(R.color.green)); 
+4

Grazie mille, window.addFlags (WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); era la cosa che mi mancava. – jds17

2

stile-V21

<resources> 

<style name="Theme.DesignDemo" parent="Base.Theme.DesignDemo"> 
    <item name="android:windowDrawsSystemBarBackgrounds">true</item> 
    <item name="android:windowTranslucentNavigation">true</item>//translucent 
    <item name="android:statusBarColor">@android:color/transparent</item> 
    <item name="android:navigationBarColor">@android:color/transparent</item> 
</style> 

Problemi correlati