Android棒棒糖更改导航栏颜色

新手上路,请多包涵

在我的应用程序中,我需要更改底部导航栏的颜色。我看了很多帖子,但找不到解决方案。我正在使用 appCompat 库。

在此处输入图像描述

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>

原文由 user3065901 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 845
2 个回答

它可以在 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 设置为 true,并在导航栏下方放置一个彩色视图。

原文由 Zielony 发布,翻译遵循 CC BY-SA 3.0 许可协议

如果要设置默认颜色 navigationBar ,这取决于白天或夜晚主题,例如,在其中一个片段中设置自定义颜色后,您需要使用此:

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

原文由 Valentin 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题