HarmonyOS ColumnAttribute设置的applyPressedAttribute无法触发?

在List组件中ListItem设置的attributeModifier,无法触发applyPressedAttribute,可能是什么原因呢?

阅读 553
1 个回答

请参考示例如下:

// xxx.ets
@Entry
@Component
struct ListExample {
  @State arr: number[] = [0, 1, 2, 3, 4]
  @State modifier: MyButtonModifier = new MyButtonModifier()

  @Builder
  ListComponent(){
    List({ space: 20, initialIndex: 0 }) {
      ForEach(this.arr, (item: number, index?: number) => {
        ListItem() {
          Column(){
            Text('' + item)
              .width('100%')
              .height('100%')
              .fontSize(20)
              .textAlign(TextAlign.Center)
              .fontColor(Color.White)
          }.width('100%')
          .height(80)
          .attributeModifier(this.modifier)
        }
      }, (item: string) => item)
    }.width('100%')
  }

  build() {
    Column(){
      this.ListComponent()
    }
  }
}

class MyButtonModifier implements AttributeModifier<ColumnAttribute> {
  applyNormalAttribute(instance: ColumnAttribute): void {
    instance.backgroundColor(Color.Black)
  }

  applyPressedAttribute(instance: ColumnAttribute): void {
    instance.backgroundColor(Color.Red)
  }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进