当前位置: 首页 > news >正文

属性修改器 (AttributeModifier)

主页面设置组件

import { MyButtonModifier } from '../datastore/MyButtonModifier';

@Entry
@ComponentV2
struct MainPage {
  // 支持用状态装饰器修饰,行为和普通的对象一致
  @Local modifier: MyButtonModifier = new MyButtonModifier();
  build() {
    Column() {
      Button("Button")
        .attributeModifier(this.modifier)
    }
    .width('100%')
  }
}

新建页面构建属性

//默认态(Normal)、按压态(Pressed)、焦点态(Focused)、禁用态(Disabled)、选择态(Selected)
export class MyButtonModifier implements AttributeModifier<ButtonAttribute> {
  applyNormalAttribute(instance: ButtonAttribute): void {
    // instance为Button的属性对象,设置正常状态下属性值
    instance
      .backgroundColor('#17A98D')
      .borderColor('#707070')
      .borderWidth(2)
  }

  applyPressedAttribute(instance: ButtonAttribute): void {
    // instance为Button的属性对象,设置按压状态下属性值
    instance
      .backgroundColor('#2787D9')
      .borderColor('#FFC000')
      .borderWidth(5)
  }

  applyFocusedAttribute(instance: ButtonAttribute): void {
    // instance为Button的属性对象,设置焦点状态下属性值
    instance
      .backgroundColor(Color.Brown)
      .borderColor(Color.Orange)
      .borderWidth(9)
  }

  applyDisabledAttribute(instance: ButtonAttribute): void {
    // instance为Button的属性对象,设置禁用状态下属性值
    instance
      .backgroundColor(Color.Gray)
      .borderColor(Color.Black)
      .borderWidth(1)
  }

  applySelectedAttribute(instance: ButtonAttribute): void {
    // instance为Button的属性对象,设置选中状态下属性值
    instance
      .backgroundColor(Color.Red)
      .borderColor(Color.Blue)
      .borderWidth(3)
  }
}

相关文章:

  • 2024年已备案大模型发展趋势分析
  • spring boot + Prometheus + Grafana 实现项目监控
  • 2️⃣ Coze创建智能体教学(2025年全新版本)
  • 探索轻量高性能的 Rust HTTP 服务器框架 —— Hyperlane
  • 内存管理及内建函数
  • AI芯片混战:GPU vs TPU vs NPU的算力与能效博弈
  • 嵌入式软硬件开发,常见通信总线
  • Spring启示录、概述、入门程序以及Spring对IoC的实现
  • Spring Boot 框架注解:@ConfigurationProperties
  • Java文件流操作 - 【Guava】IO工具
  • React 列表与 Keys 的深入探讨
  • 聊聊Spring AI的PgVectorStore
  • OpenCV 图形API(17)计算输入矩阵 src 中每个元素的平方根函数sqrt()
  • oklink js逆向(入口定位)
  • 1.2 测试设计阶段:打造高质量的测试用例
  • c++ 函数后面加const 作用
  • kaggle竞赛——房价预测
  • 轨迹预测Physical Plausibility-aware Trajectory Prediction via Locomotion Embodiment
  • 基于 Vue 3 + html2canvas 实现网页任意区域截图组件
  • 抓wifi无线空口包之Ubuntu抓包(二)
  • 网站全屏视频怎么做/免费网站推广软件