2014-12-21 7 views
6

내비게이션 막대의 색상/투명도를 검은 색에서 일반 롤리팝 장치 (예 : 상태 표시 줄이나 작업 표시 줄의 색상)에서 일반 색상으로 변경하려면 어떻게해야하나요?내비게이션 막대 색상 변경, Android

AppCompat를 사용하여 수행 할 수 있습니까? 아니면 SDK 21에서만 사용할 수 있습니까?

+1

확인 :

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

는 또한, 당신의 상태 표시 줄의 색상을 변경하려면 다음 줄을 추가 이 [link] (https : //x.appgyver .com/categories/3 사용자 인터페이스 및 디자인/내용/16 사용자 정의 탐색 모음 양식) – BzH

+0

This (http://developer.xamarin.com/guides/android/user_interface/navigation_bar/Images/ 19 _-_ NavBar.png )는 의미하는 탐색 모음입니다. –

답변

10

AppCompat 테마에 navigationBarColor 속성을 설정하거나 기본 v21 테마에 android:navigationBarColor 속성을 설정할 수 있습니다.

<style name="AppTheme" parent="@style/Theme.AppCompat.Light"> 
    ... 
    <item name="navigationBarColor">#123456</item> 
</style> 
이 기능은 안드로이드 4.4 이상에있는 경우가 아니라 시스템에 의해 지원 될 필요가 있기 때문에 이것은, 사전 롤리팝 장치에서 작동하지 않습니다

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

참고.

+0

감사합니다.하지만 전 Lollipop 장치 (minSDK 11)에서도 작동하는 것을 찾고 있습니다. –

+0

그게 가능하지 않습니다 afaik – Floern

+0

appcompat를 사용하는 Lollipop 기기에서 최소한 minSDK를 21로 설정할 필요가 없습니까? –

3

또 다른 프로그래밍 방법 :

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

고맙습니다. window.addFlags (WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); 내가 놓친 것이었다. – jds17

2

스타일 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> 

관련 문제