HarmonyOS NEXT鸿蒙开发:Checkbox多选框

介绍

Checkbox(复选框) 是一个常用的基础交互组件,允许用户从一组选项中选择一个或多个选项

官方网址

应用场景

适用于:

  • 表单同意条款
  • 设置开关
  • 多选爱好

接口

Checkbox(options?: CheckboxOptions)

参数:

  • options:CheckboxOptions 类型,非必填,配置复选框的参数。

设置是否选中

设置多选框是否选中

select(value: boolean)

例子

Column() {
  Row(){
    Text("爱好:")
  }
  .width("100%")

  Row(){
    Checkbox()
      .select(false)
    Text("王者荣耀")
  }
  .width("100%")

  Row(){
    Checkbox()
      .select(false)
    Text("抖音")
  }
  .width("100%")
}

双向数据绑定

该属性支持 $$ 双向绑定变量

@State wzry: boolean = false
@State dy: boolean = false
build() {
  Column() {
    Row(){
      Text("爱好:")
    }
    .width("100%")

    Row(){
      Checkbox()
        .select($$this.wzry)
      Text("王者荣耀")
    }
    .width("100%")

    Row(){
      Checkbox()
        .select($$this.dy)
      Text("抖音")
    }
    .width("100%")

    Button("获取值")
      .onClick( ()=>{
        console.log("wzry:", this.wzry)
        console.log("dy:",this.dy)
      })

  }
}

常用样式

设置形状

  • Circle 圆形
  • Square 方形
shape(value: CheckBoxShape)

例子:

Checkbox().shape(CheckBoxShape.ROUNDED_SQUARE);

设置选中状态的颜色

selectedColor(value: ResourceColor)

例子:

Checkbox().selectedColor('#007DFF');

设置未选中状态的边框颜色。

unselectedColor(value: ResourceColor)(API 10+)

例子:

Checkbox().unselectedColor('#CCCCCC');

自定义勾选标记的样式

如大小、颜色

mark(value: MarkStyle)(API 10+)
Checkbox().mark({ size: 20, color: '#FFFFFF' });

自定义样式

@Component
struct CustomCheckbox {
  @State isChecked: boolean = false;

  build() {
    Row() {
      Checkbox()
        .select(this.isChecked)
        .selectedColor('#4CAF50') // 绿色选中色
        .shape(CheckBoxShape.Circle) // 圆形
        .width(24)
        .height(24)
        .onChange((value: boolean) => {
          this.isChecked = value;
        });
      Text('自定义复选框').fontSize(16);
    }
  }
}

事件处理

监听选中状态变化。

onChange(callback: (value: boolean) => void)

例子:

Checkbox().onChange((value: boolean) => {
  console.log(`选中状态: ${value}`);
});

原文出处:/show_1GW1yAyubCem.html