【发布时间】:2021-05-04 11:33:03
【问题描述】:
我们有一个基于 View 的 Android 应用,在 res/drawable 文件夹中有一些可绘制对象,在 res/drawable-night 文件夹中有对应的夜间模式
当使用旧版视图时,从 XML 布局文件中引用可绘制对象 R.drawable.foo,系统将从 res/drawable 或 res/drawable-night 文件夹中选择可绘制对象,具体取决于我们是处于白天模式还是夜间模式。
当使用 jetpack compose 时,我们在 Image composable 中引用 drawable,如下所示:
Image(painter = painterResource(R.drawable.foo))
但是,这总是从res/drawable 文件夹中选择可绘制对象,忽略日/夜模式。
我们可以做这样的事情来选择正确的drawable,但是我们需要在所有使用drawables的composables中测试夜间模式(isSystemInDarkTheme()):
Image(painter = painterResource(id = if (isSystemInDarkTheme()) R.drawable.foo_dark else R.drawable.foo_light))
在 compose 中是否有办法确保从白天或夜间模式中正确、透明地选取可绘制对象,就像在旧视图系统中一样?
【问题讨论】:
标签: android android-jetpack android-jetpack-compose