如何基于MaterialTheme.typography.body2创建带红色的TextStyle实例?
如何基于MaterialTheme.typography.body2创建带自定义颜色的TextStyle实例?
首先说明Code B写法错误的原因:Jetpack Compose里的TextStyle是不可变数据类,所有属性都是只读的,没法直接通过style.color = Color.Red这种方式修改属性值。
要实现基于MaterialTheme.typography.body2并设置自定义颜色的需求,你可以利用Kotlin数据类的copy()方法,这个方法会复制原有实例的所有属性,同时允许你修改指定属性:
val style = MaterialTheme.typography.body2.copy( color = Color.Red )
这种写法的好处是复用了body2样式里已定义的所有其他属性(比如字号、字重、字体族等),不需要像Code A那样从头定义每一个属性,既简洁又能保持与主题样式的一致性。
内容的提问来源于stack exchange,提问作者HelloCW
相关产品推荐
相关产品推荐

