如何将系统导航栏的背景颜色设置为Material 3中新增的底部导航栏中的一种? (Android)
How to set the background color of system navigation bar to the one of the new Bottom Navigation bar in Material 3? (Android)
我试过用这个:
<item name="android:navigationBarColor">?attr/colorSurface</item>
但它没有给我想要的结果..就像文档中显示的那样:
我最近切换到 Material 3.
如果您想要应用程序的完整代码:https://github.com/Sujal1245/WALLisWALL-Wallpaper-App
尝试将此行添加到您的主题中:
<item name="colorSurface">@color/"container color"</item>
1.5.0 版(特别是 1.5.0-alpha03)及更高版本的 Material 组件库中有一个新的 class 解决了这个问题,SurfaceColors class.
要使用它,请针对所需颜色的 SurfaceColors
枚举中的常量值之一调用 getColor
方法。这是一个例子:
getWindow().setNavigationBarColor(SurfaceColors.SURFACE_2.getColor(this));
SURFACE_2
是 BottomNavigationView
使用的(或等价物)。它可以使用和不使用动态着色(包括夜间模式)。我还观察到 Google 应用程序在文件中使用了此解决方案。
Here is a screenshot on Android 11
And here is a screenshot on Android 12.1 with Dynamic Coloring
如果您也对 Google 为 BottomNavigationView
使用的确切阴影感到好奇,它是从 #00000000 到 #33333333 的 5dp 高渐变可绘制。
除了。如果您使用动态着色。设置动态着色后调用此方法。否则,您将始终获得相同的颜色而没有动态效果。
Kotlin 中的代码
DynamicColors.applyIfAvailable(this) // After this
window.navigationBarColor = SurfaceColors.SURFACE_2.getColor(this)
谢谢。
我试过用这个:
<item name="android:navigationBarColor">?attr/colorSurface</item>
但它没有给我想要的结果..就像文档中显示的那样:
我最近切换到 Material 3.
如果您想要应用程序的完整代码:https://github.com/Sujal1245/WALLisWALL-Wallpaper-App
尝试将此行添加到您的主题中:
<item name="colorSurface">@color/"container color"</item>
1.5.0 版(特别是 1.5.0-alpha03)及更高版本的 Material 组件库中有一个新的 class 解决了这个问题,SurfaceColors class.
要使用它,请针对所需颜色的 SurfaceColors
枚举中的常量值之一调用 getColor
方法。这是一个例子:
getWindow().setNavigationBarColor(SurfaceColors.SURFACE_2.getColor(this));
SURFACE_2
是 BottomNavigationView
使用的(或等价物)。它可以使用和不使用动态着色(包括夜间模式)。我还观察到 Google 应用程序在文件中使用了此解决方案。
Here is a screenshot on Android 11
And here is a screenshot on Android 12.1 with Dynamic Coloring
如果您也对 Google 为 BottomNavigationView
使用的确切阴影感到好奇,它是从 #00000000 到 #33333333 的 5dp 高渐变可绘制。
除了
Kotlin 中的代码
DynamicColors.applyIfAvailable(this) // After this
window.navigationBarColor = SurfaceColors.SURFACE_2.getColor(this)
谢谢。