如何将状态栏和导航栏颜色与操作栏和底部导航菜单相匹配?
How to match status bar and navigation bar colors to action bar and bottom navigation menu?
我正在尝试使状态栏和导航栏颜色与操作栏和底部导航菜单相匹配。当我将颜色设置为“colorOnPrimary”以匹配操作栏时,颜色比预期的要暗。
更改状态栏和导航栏颜色:
<resources xmlns:tools="http://schemas.android.com/tools">
<!-- Base application theme. -->
<style name="Theme.PATCOToday" parent="Theme.Material3.DayNight">
<!-- Primary brand color. -->
<item name="android:colorBackground">@color/material_dynamic_primary99</item>
<item name="colorOnBackground">@color/material_dynamic_primary10</item>
<item name="colorPrimary">@color/material_dynamic_primary60</item>
<item name="colorPrimaryDark">@color/material_dynamic_primary50</item>
<item name="colorPrimaryContainer">@color/material_dynamic_primary90</item>
<item name="colorOnPrimary">@color/material_dynamic_primary99</item>
<item name="colorOnPrimaryContainer">@color/material_dynamic_primary20</item>
<!-- Status-bar and Nav-bar -->
<item name="android:statusBarColor">?android:colorPrimary</item>
<item name="android:navigationBarColor">?android:colorPrimary</item>
</style>
Result vs What I'd Like
我相信由于我实施了 Material 3,颜色会有所不同,但我不确定如何解决它。
有什么想法吗?
如果我没看错,您可以尝试通过在 MainActivity 的 onCreate() 方法中插入这些行以编程方式执行此操作class.
if (Build.VERSION.SDK_INT >= 21) {
getWindow().setStatusBarColor(ContextCompat.getColor(this,R.color.your_color));
getWindow().setNavigationBarColor(ContextCompat.getColor(this,R.color.your_color));
}
我正在尝试使状态栏和导航栏颜色与操作栏和底部导航菜单相匹配。当我将颜色设置为“colorOnPrimary”以匹配操作栏时,颜色比预期的要暗。
更改状态栏和导航栏颜色:
<resources xmlns:tools="http://schemas.android.com/tools">
<!-- Base application theme. -->
<style name="Theme.PATCOToday" parent="Theme.Material3.DayNight">
<!-- Primary brand color. -->
<item name="android:colorBackground">@color/material_dynamic_primary99</item>
<item name="colorOnBackground">@color/material_dynamic_primary10</item>
<item name="colorPrimary">@color/material_dynamic_primary60</item>
<item name="colorPrimaryDark">@color/material_dynamic_primary50</item>
<item name="colorPrimaryContainer">@color/material_dynamic_primary90</item>
<item name="colorOnPrimary">@color/material_dynamic_primary99</item>
<item name="colorOnPrimaryContainer">@color/material_dynamic_primary20</item>
<!-- Status-bar and Nav-bar -->
<item name="android:statusBarColor">?android:colorPrimary</item>
<item name="android:navigationBarColor">?android:colorPrimary</item>
</style>
Result vs What I'd Like
我相信由于我实施了 Material 3,颜色会有所不同,但我不确定如何解决它。
有什么想法吗?
如果我没看错,您可以尝试通过在 MainActivity 的 onCreate() 方法中插入这些行以编程方式执行此操作class.
if (Build.VERSION.SDK_INT >= 21) {
getWindow().setStatusBarColor(ContextCompat.getColor(this,R.color.your_color));
getWindow().setNavigationBarColor(ContextCompat.getColor(this,R.color.your_color));
}