2014-12-21 26 views
6

Wie kann ich die Farbe/Transparenz der Navigationsleiste von Schwarz zu einer generischen Farbe in Pre-Lollipop-Geräten ändern (z. B. die Farbe der Statusleiste oder der Aktionsleiste)?Ändern der Farbe der Navigationsleiste, Android

Kann ich das mit AppCompat machen oder ist das nur für SDK 21 möglich?

+1

prüfen dies [link] (https: //x.appgyver .com/categories/3-user-interface-and-design/inhalt/16-customizing-navigation-bar-appearance) – BzH

+0

Dies (http://developer.xamarin.com/guides/android/user_interface/navigation_bar/Images/ 19 _-_ NavBar.png ) ist die Navigationsleiste, die ich meinte. –

Antwort

10

Sie können das Attribut navigationBarColor in einem AppCompat-Design oder android:navigationBarColor in einem nativen V21-Design festlegen.

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

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

Beachten Sie, dass dies nicht auf Pre-Lollipop-Geräten funktioniert, da diese Funktion vom System unterstützt werden muss, die auf Android 4.4 oder älter nicht der Fall ist.

+0

Danke, aber ich suche nach etwas, das auch für Pre-Lollipop-Geräte funktioniert (minSDK 11). –

+0

Das ist nicht möglich afaik – Floern

+0

Ist es zumindest möglich, dass Lollipop-Geräte appcompat verwenden, damit ich den minSDK nicht auf 21 setzen muss? –

3

Ein weiterer programmatisch Weg:

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

Ferner Statusleiste Farbe zu ändern, fügen Sie die folgende Zeile:

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

Vielen Dank, window.addFlags (WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); war das, was ich vermisste. – jds17

2

style-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> 

Verwandte Themen