programing

Android 막대사탕 탐색 모음 색 변경

bestprogram 2023. 8. 5. 10:45

Android 막대사탕 탐색 모음 색 변경

앱에서 하단 네비게이션 바 색상을 변경해야 합니다.저는 많은 게시물을 보았지만 해결책을 찾을 수 없었습니다.저는 appCompat 라이브러리를 사용하고 있습니다.

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>

다음을 사용하여 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 Rollipop에 도입되었으며 API 버전 < 21에서는 작동하지 않습니다.

두 번째 방법(KitKat에서 작동)은 매니페스트에서 windowTranslucentNavigation을 true로 설정하고 탐색 막대 아래에 컬러 보기를 배치하는 것입니다.

프로그래밍 방식은 다음과 같습니다.

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

호환 라이브러리 사용:

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

values-v21/style.xml 폴더에서 xml을 사용하여 수행하는 방법은 다음과 같습니다.

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

다음은 탐색 모음 색을 변경하는 몇 가지 방법입니다.

XML에 의해

1 - values-v21/style.xml

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

또는 값/폴더만 사용하여 수행하려면 -

2 - values/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));

호환 라이브러리 사용

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)

values-v21/style.xml 폴더에 다음 행을 추가할 수 있습니다.

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

Kotlin을 사용하는 사람들은 이것을 Main Activity.kt에 넣을 수 있습니다.

window.navigationBarColor = ContextCompat.getColor(this@MainActivity, R.color.yourColor)

와 함께window존재:

val window: Window = this@MainActivity.window

또는 memes.xml 또는 styles.xml(API 레벨 21 필요)에 다음을 넣을 수 있습니다.

<item name='android:navigationBarColor'>@color/yourColor</item>
  1. 검은색 만들기:<color name="blackColorPrimary">#000001</color> (not #000000)
  2. 스타일로 쓰기:<item name="android:navigationBarColor" tools:targetApi="lollipop">@color/blackColorPrimary</item>

문제는 안드로이드 상위 버전이 #000000을 투명하게 만든다는 것입니다.

이것들을 당신의 주제에 놓으세요.

memes.xml:< item name="android:내비게이션 바컬러" 도구:targetApi="21">당신의 색 </item>

테마 편집기를 사용하여 다음을 클릭하여 테마를 수정할 수도 있습니다.

도구 -> Android -> 테마 편집기

그러면 .xml 또는 .class 파일에 추가 콘텐츠를 넣을 필요가 없습니다.

@위의 지엘로니의 대답은 효과가 있습니다.

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

또한 @Alexey Ozerov의 코멘트를 바탕으로 다음 사항을 추가했습니다.

진실의

하지만 이 스크린샷을 추가하는 것은 새로 와서 찾는 데 어려움을 겪는 사람이 있을 경우를 대비해서입니다.styles.xml그리고.colors.xmlenter image description here

styles.xml 파일 \app\src\main\res\values\styles.xml에서 직접 변경할 수 있습니다.

이전 버전에 대한 이 작업은 킷캣에서 변경하고 여기로 왔습니다.

을 본색상설려는경우하정을로 navigationBar이는 주간 또는 야간 테마에 따라 다릅니다. 예를 들어, 조각 중 하나에서 사용자 지정 색상을 설정한 후에는 다음을 사용해야 합니다.

requireActivity().window.navigationBarColor = requireContext().getColorFromAttr(android.R.attr.navigationBarColor)

언급URL : https://stackoverflow.com/questions/27839105/android-lollipop-change-navigation-bar-color