保质期管理 app,使用主题颜色区分过期和未过期状态

更新日期: 2023-06-12 阅读次数: 714 字数: 152 分类: Android

例如想使用 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 聊聊, 查看更多联系方式