[英]Jetpack Compose status bar color not updated in Dark Theme
我想为深色主题和浅色主题设置不同的颜色。 除了状态栏颜色外,一切正常。
在深色主题中 -> 我的状态栏颜色未更新。
我的主题:
private val DarkColorPalette = darkColors(
primary = Color.Black,
primaryVariant = Color.Black,
secondary = Color.LightGray
)
private val LightColorPalette = lightColors(
primary = Purple500,
primaryVariant = Purple700,
secondary = Teal200
)
我在黑暗主题中的输出:
编辑:
我已经看到了这个答案 - 如何在 jetpack compose 中更改状态栏颜色?
他们建议使用图书馆。 我不想使用任何 3rd 方库。
编辑2:
我的清单文件
<activity
android:name=".ActivityTextStyles"
android:exported="true"
android:label="@string/app_name"
android:theme="@style/Theme.ComposeText.NoActionBar" />
我能够在 onCreate() 中使用这一行代码设置状态栏颜色
this.window.statusBarColor = ContextCompat.getColor(this,R.color.black)
我的代码:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
this.window.statusBarColor = ContextCompat.getColor(this,R.color.black)
//your composables
}
}
当我遇到同样的问题并决定更深入地寻找原因时,这是我发现的。
事实证明,我的 Compose 项目开箱即用地从res/values 中的themes.xml文件读取状态栏颜色的值。 该值是使用colorPrimaryVariant设置的,将该值更新为更新状态栏颜色的新颜色。
总的来说,我建议将 themes.xml 和 colors.xml 的值更新为您希望用于项目的自定义颜色。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.