如何根据主题更改状态栏文本颜色 android
How can i change status bar text color, depending on theme android
我有问题。在白天主题中,我有一个浅色的状态栏背景和深色文本,但是如果我将主题更改为夜间,状态栏背景变暗并且文本变暗,但我需要文本变亮。我该怎么做?
以下截图:
v23\themes代码:
<style name="Theme.Light" parent="Theme.AppCompat.DayNight.NoActionBar">
<item name="colorPrimary">@color/purple_500</item>
<item name="colorPrimaryVariant">@color/action_bar</item> // this color looks like background
<item name="colorOnPrimary">@color/white</item>
<item name="colorPrimaryDark">@color/black</item>
<item name="colorSecondary">@color/teal_200</item>
<item name="colorSecondaryVariant">@color/teal_700</item>
<item name="colorOnSecondary">@color/black</item>
<item name="android:windowLightStatusBar">true</item>
<item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimaryVariant</item>
</style>
夜-v23\themes代码:
<style name="Theme.Night" parent="Theme.AppCompat.DayNight.NoActionBar">
<item name="colorPrimary">@color/purple_200</item>
<item name="colorPrimaryVariant">@color/action_bar</item> // this color looks like background
<item name="colorOnPrimary">@color/white</item>
<item name="colorPrimaryDark">@color/white</item>
<item name="colorSecondary">@color/teal_200</item>
<item name="colorSecondaryVariant">@color/teal_200</item>
<item name="colorOnSecondary">@color/white</item>
<item name="android:windowLightStatusBar">false</item>
<item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimaryVariant</item>
</style>
在您的 Android 项目中,您可以在 themes.xml
中更改这些值,应该有两个,一个用于白天主题,一个用于夜间主题。
在这些文件中,您可以更改 Android 将使用的所有默认颜色。
您可以在 'app
' > 'res
' > 'values
' > 'themes.xml
'[=18= 中找到 themes.xml ]
有关更多信息,还有这个使用完整答案; https://imstudio.medium.com/android-change-status-bar-text-color-659680fce49b
我有问题。在白天主题中,我有一个浅色的状态栏背景和深色文本,但是如果我将主题更改为夜间,状态栏背景变暗并且文本变暗,但我需要文本变亮。我该怎么做?
以下截图:
v23\themes代码:
<style name="Theme.Light" parent="Theme.AppCompat.DayNight.NoActionBar">
<item name="colorPrimary">@color/purple_500</item>
<item name="colorPrimaryVariant">@color/action_bar</item> // this color looks like background
<item name="colorOnPrimary">@color/white</item>
<item name="colorPrimaryDark">@color/black</item>
<item name="colorSecondary">@color/teal_200</item>
<item name="colorSecondaryVariant">@color/teal_700</item>
<item name="colorOnSecondary">@color/black</item>
<item name="android:windowLightStatusBar">true</item>
<item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimaryVariant</item>
</style>
夜-v23\themes代码:
<style name="Theme.Night" parent="Theme.AppCompat.DayNight.NoActionBar">
<item name="colorPrimary">@color/purple_200</item>
<item name="colorPrimaryVariant">@color/action_bar</item> // this color looks like background
<item name="colorOnPrimary">@color/white</item>
<item name="colorPrimaryDark">@color/white</item>
<item name="colorSecondary">@color/teal_200</item>
<item name="colorSecondaryVariant">@color/teal_200</item>
<item name="colorOnSecondary">@color/white</item>
<item name="android:windowLightStatusBar">false</item>
<item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimaryVariant</item>
</style>
在您的 Android 项目中,您可以在 themes.xml
中更改这些值,应该有两个,一个用于白天主题,一个用于夜间主题。
在这些文件中,您可以更改 Android 将使用的所有默认颜色。
您可以在 'app
' > 'res
' > 'values
' > 'themes.xml
'[=18= 中找到 themes.xml ]
有关更多信息,还有这个使用完整答案; https://imstudio.medium.com/android-change-status-bar-text-color-659680fce49b