Android 样式系统 | 主题背景属性

本文深入探讨了在Android应用中如何利用主题背景属性来管理颜色,提高代码复用性和灵活性。建议避免直接引用颜色资源,而是通过主题背景属性引用,以便在深色和浅色主题间轻松切换。同时,推荐使用ColorStateLists来处理不同状态的颜色,减少维护成本。文章还提醒注意使用?attr/语法和避免在低API版本中直接设置alpha。最后,提到了使用Lint检查以确保遵循最佳实践。
摘要由CSDN通过智能技术生成

在 Android 样式系统系列的前几篇文章中,我们介绍了主题背景与样式的区别,以及为什么说通过主题背景和公共主题背景属性来分解您要实现的内容是一个不错的主意,请点击链接回顾:

这会让我们通过创建更少的布局或样式,以隔离主题背景中的修改。在实际开发中,您通常希望根据主题背景改变颜色,因此您应该始终通过主题背景属性来引用颜色。

 

这意味着您可以将如下代码视为有代码异味 (Code smell):

<!-- Copyright 2019 Google LLC.  
   SPDX-License-Identifier: Apache-2.0 -->
<View …
  android:background="@color/white"/>

相反,您应该使用主题背景属性,它允许您按主题更改颜色,例如,在深色主题中提供一个不同的值:

<!-- Copyright 2019 Google LLC.
   SPDX-License-Identifier: Apache-2.0 -->
<View …
  android:background="?attr/colorSurface"/>
  • 深色主题

    https://developer.android.google.cn/guide/topics/ui/look-and-feel/darktheme

即使您当前不支持其他主题 (什么,您的应用还没有支持深色主题?),我们依然建议您采用这种方法,因为这样会让新主题的采用变得更加简单。

合格的 Colors 文件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值