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

文章目录

    例如想使用 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 聊聊,或者关注我的个人公众号“大象工具”, 查看更多联系方式