2015-01-08 2 views
65

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

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> 
+0

можете ли вы отправить файл style.xml? Не все. Просто связанные фрагменты – Blackbelt

ответ

107

Это может быть сделано внутри 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 истина в манифесте и место цветной вид под панелью навигации.

+0

Спасибо. Я добавил к моему стилю код @ color/MyColor и теперь работает. – user3065901

+5

Есть ли способ изменить цвет значков тоже? –

+7

' @ color/theme_color' добавить в папку 'values-21' –

51

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

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)); 
} 

Вот как это сделать с XML в значения-V21/стиль .xml:

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

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

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

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

По XML

1- значения-v21/style.xml

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

Или, если вы хотите сделать это, используя только значения/папки

тогдашний

2- значения/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)

+0

Мне не удалось использовать 'tools: targetApi'? Является ли эта функциональность устаревшей? – winklerrr

+1

@winklerrr Это не устарело, см. Мой обновленный ответ. –

+0

Если я решаю изменить цвет программно - мне нужно сделать это в каждом 'Activity' /' Fragment'? Или есть определенное место, где я должен это делать? Может быть, в классе, который расширяет «приложение»? – winklerrr

0

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

Эта работа над более старыми версиями, I w как изменить его в KitKat и прийти сюда.

0

Вы также можете изменить свою тему с помощью редактора темы, нажав:

Инструментов -> Android -> Редактор Темы

Тогда вам не нужно даже поставить некоторые дополнительные содержания в вашем XML- или .class файлы.

Смежные вопросы