我在 attributeModifier 里设了背景,组件还是显示默认样式?

我用了 attributeModifier 来设置背景颜色,但按钮仍然是系统默认样式,好像我设置的样式没生效。下面是我写的:

Button("测试")
  .attributeModifier(new MyButtonModifier())

class MyButtonModifier implements AttributeModifier<ButtonAttribute> {
  applyNormalAttribute(instance: ButtonAttribute): void {
    instance.backgroundColor(Color.Yellow);
  }
}

是不是我设置错了?还是有优先级问题?

阅读 311
1 个回答

据我所知,同学你遇到的问题通常是因为组件样式被其他属性或样式冲突覆盖。

试着检查以下情况吧?

是否在 .attributeModifier() 之外又设置了 .backgroundColor() 等属性?
是否和系统状态样式冲突(比如 .stateStyles() 会覆盖)?

Button("测试")
  .attributeModifier(new MyButtonModifier())
// 不再单独设置 .backgroundColor()

不要在组件外部与 Modifier 同时设置同一属性;
属性优先级按设置顺序决定,后设置的会覆盖先前的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进