例如想使用 Android Material Design 3 主题中定义好的颜色,来着重显示过期状态。这样就能兼顾日间模式和夜间模式了,不需要手动判断。
themes.xml
<resources>
<style name="Theme.ShelfLife2" parent="Theme.Material3.Light.NoActionBar">
<item name="colorPrimary">@color/md_theme_light_primary</item>
<item name="colorOnError">@color/md_theme_light_onError</item>
...
使用 Material 主题色
R.attr.colorPrimary
保质期管理中,判断物品如果已过期,则设置不同的颜色,这里用了 R.attr.colorError。
Kotlin 示例代码:
val errorColor = MaterialColors.getColor(binding.timeLeft, com.google.android.material.R.attr.colorError)
binding.timeLeft.setTextColor(errorColor)
如果是 XML Layout 文件中,则应该是:
android:textColor="?attr/colorError"
切换夜间模式测试
TODO
参考
- https://stackoverflow.com/questions/75943818/how-can-i-access-theme-color-attributes-via-r-attr-colorprimary
微信关注我哦 👍
我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式