我用了 attributeModifier 来设置背景颜色,但按钮仍然是系统默认样式,好像我设置的样式没生效。下面是我写的:
Button("测试")
.attributeModifier(new MyButtonModifier())
class MyButtonModifier implements AttributeModifier<ButtonAttribute> {
applyNormalAttribute(instance: ButtonAttribute): void {
instance.backgroundColor(Color.Yellow);
}
}
是不是我设置错了?还是有优先级问题?
据我所知,同学你遇到的问题通常是因为组件样式被其他属性或样式冲突覆盖。
试着检查以下情况吧?
是否在 .attributeModifier() 之外又设置了 .backgroundColor() 等属性?
是否和系统状态样式冲突(比如 .stateStyles() 会覆盖)?
不要在组件外部与 Modifier 同时设置同一属性;
属性优先级按设置顺序决定,后设置的会覆盖先前的。