我用了 attributeModifier 修改了背景,但按压态不生效是怎么回事?

我用 attributeModifier 给按钮设置了背景色,并实现了 applyPressedAttribute,但点击按钮时颜色没有变化。以下是我的 Modifier:

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

组件绑定正常,也没报错,是不是要额外设置什么才能触发按压态?

阅读 338
1 个回答

据我所知,您的代码是对的,问题可能出在按钮没有启用“可按压”反馈机制。

试试检查以下几点:

确保按钮没有被禁用(.enabled(false) 会阻止状态变化);
不要在外部再覆盖 background,否则会优先生效;
确保使用的是标准组件,如 Button/Radio 等支持状态切换;

Button("测试按钮")
  .attributeModifier(this.modifier)