HarmonOS 通用组件(Checkbox)

news2024/9/27 19:21:37

本文中 我们来说 通用组件中的 Checkbox
我们先搭起一个基本的架子组件

@Entry
@Component
struct Index {

  build() {
    Row() {
      Column() {
        Row() {
          
        }
      }
      .width('100%')
    }
    .height('100%')
  }
}

我们可以在Row 行组件中加入代码

Checkbox({name: "age"})
Text("年龄")

这样 就做出了一个 选择框 和一个 文本的效果
在这里插入图片描述
我们可以点击勾选 和 取消勾选
在这里插入图片描述
然后 我们可以监听它的状态改变
我们这样写

Checkbox({name: "age"}).onChange((value) => {
    console.log("状态value"+value);
})
Text("年龄")

此时 我们勾选/取消勾选 都会触发 onChange
这个方法接受一个参数 记录选择状态 true 选中 false 取消选中
在这里插入图片描述
在实际开发中 我们可以通过这种方式记录

@Entry
@Component
struct Index {

  @State Arr:Array<string> = [];

  build() {
    Row() {
      Column() {
        ForEach(
          this.Arr,
          (item)=>{
            Text(item)
          }
        )
        Row() {
         Checkbox({name: "health"}).onChange((value) => {
           if(value) {
             this.Arr.push("健康")
           }else{
             this.Arr = this.Arr.filter(item => item !== "健康");
           }
         })
         Text("健康")
          Checkbox({name: "longevity"}).onChange((value) => {
            if(value) {
              this.Arr.push("长寿")
            }else{
              this.Arr = this.Arr.filter(item => item !== "长寿");
            }
          })
          Text("长寿")
        }
      }
      .width('100%')
    }
    .height('100%')
  }
}

我们设置了两个Checkbox组件 然后 监听他们的 onChange
通过value判断 是否选中 或者 取消选择
如果是选中 将 内容 push到数组中 否则 从数组中过滤出去
最上面 用 ForEach 循环渲染了数组内容

这样 我们选择 就会将内容加入数组中
在这里插入图片描述
被我们取消的内容 就会从数组中移除
在这里插入图片描述
然后 我们还可以做一个分组
我们这样写

@Entry
@Component
struct Index {

  build() {
    Row() {
      Column() {
        Row() {
          CheckboxGroup({ group: "hobby" })
          Text("全选")
        }
        Row() {
          Checkbox({ group: "hobby" })
          Text("电子游戏")
        }
        Row() {
          Checkbox({ group: "hobby" })
          Text("运动")
        }
        Row() {
          Checkbox({ group: "hobby" })
          Text("健身")
        }
      }
      .width('100%')
    }
    .height('100%')
  }
}

CheckboxGroup 会声明出一个组 且 它是作为全选按钮出现在页面上的
然后 group属性 用来声明组名
所有 组名 group属性与它相同的 Checkbox组件 都会被分组到它下面
效果就是 我们点击全选 他们就会全部选中
在这里插入图片描述
我们取消全选 他们就会全部取消
在这里插入图片描述
然后 我们全部 取消 全选 也会自动取消

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1364079.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JDK 11:崭新特性解析

JDK 11&#xff1a;崭新特性解析 JDK 11&#xff1a;崭新特性解析1. HTTP Client&#xff08;标准化&#xff09;示例代码 2. 局部变量类型推断的扩展示例代码 3. 新的字符串方法示例代码 4. 动态类文件常量示例代码 5. Epsilon 垃圾收集器使用方式 结语 JDK 11&#xff1a;崭新…

第三十八周周报:文献阅读 +BILSTM+GRU+Seq2seq

目录 摘要 Abstract 文献阅读&#xff1a;耦合时间和非时间序列模型模拟城市洪涝区洪水深度 现有问题 提出方法 创新点 XGBoost和LSTM耦合模型 XGBoost算法 ​编辑 LSTM&#xff08;长短期记忆网络&#xff09; 耦合模型 研究实验 数据集 评估指标 研究目的 洪…

stable diffusion 基础教程-文生图

置顶大模型插件资源链接 你如果没有魔法上网,请自取 百度云盘链接:链接:https://pan.baidu.com/s/1_xAu47XMdDNlA86ufXqAuQ?pwd=23wi 提取码:23wi 有疑问加微:mincarver 界面介绍 参数解释 参数解释Sampling method扩散去噪算法的采样模式,不同采样模式会带来不一样的效…

opencv期末练习题(6)附带解析

滑动块调整图像灰度 import cv2 import numpy as np """ 滑动块调整图像灰度1. 读取图片&#xff0c;并转为灰度图 2. 定义启动滑块和阈值滑块 3. 只有启动滑块的值为1时&#xff0c;拖动阈值滑块才生效 4. 根据阈值滑块的值实时对图像进行二值化操作 "&qu…

【文件操作】

目录 为什么使用文件什么是文件二进制文件和文本文件文件的打开和关闭文件的顺序读写文件的随机读写文件读取结束的判定文件缓冲区 1. 为什么使用文件 如果没有文件&#xff0c;我们写的程序数据时存储在电脑内存中&#xff0c;如果程序退出&#xff0c;内存回收&#xff0c;…

VS Code 如何调试Python文件

VS Code中有1,2,3处跟Run and Debug相关的按钮&#xff0c; 1 处&#xff1a;调试和运行就不多说了&#xff0c;Open Configurations就是打开workspace/.vscode下的lauch.json文件&#xff0c;而Add Configuration就是在lauch.json文件中添加当前运行Python文件的Configuratio…

C语言编译器(C语言编程软件)完全攻略(第二十七部分:VS安全函数问题(C语言安全函数)是怎么回事?如何解决?)

介绍常用C语言编译器的安装、配置和使用。 二十七、VS安全函数问题&#xff08;C语言安全函数&#xff09;是怎么回事&#xff1f;如何解决&#xff1f; 在 VS&#xff08;Visual Studio&#xff09;下编译C语言程序&#xff0c;如果使用了 scanf()、gets()、strcpy()、strca…

在IDEA中使用git分支进行开发然后合并到Master分支,2022.1.x版本

在实际开发过程中&#xff0c;为了避免因为在开发中出现的问题以及方便发布版本&#xff0c;如果是多版本发布的情况相下&#xff0c;我们通常需要采用分支进行开发&#xff0c;这个时候&#xff0c;我们就需要了解git分支的相关知识点了&#xff0c;本篇博客也是博主在实际公司…

linux高级管理——Squid代理

一、squid服务基础&#xff1a; 1.1缓存代理的概述&#xff1a; 代理的工作机制 当客户机通过代理来请求Web页面时&#xff0e;指定的代理服务器会先检查自己的缓存&#xff0c;如果缓存中已经有客户机需要的页面&#xff0c;则直接将缓存中的页面内容反馈给客户机:如果缓存中…

JumpServer3.0版本-资产管理

资产列表 资产列表可展示资产树和类型树,可以查看添加的所有资产 新增资产也是在此页面 在资产树上面右键可以创建新的子节点 比如这里我新建了个“腾讯云”节点 选中腾讯云节点,点击中间的“创建”按钮,新增资产 选择你的主机类型,我这是Linux 填写你资产的名称、IP必…

复习sql: 内连接,左外连接,右外连接,全外连接,交叉连接

数据表准备 学生表 和 课程表 内连接 join 或 innner join 筛选出满足条件的列&#xff0c;where也可以实现这种功能。 SELECT * FROM student JOIN course ON student.student_id course.stu_id结果 外连接 左外连接 left join 或者 left outer join 以第一个表为基础&…

爬虫-3-模拟登录,代理ip,json模块

#本文仅供学习使用(O&#xff40;) 如果服务器响应的数据为json数据: 那么我们可以用 res.json() 或 json模块(将json字符串转换为Python里面的字典类型) 接收数据。

商家如何通过会员充值消费管理系统提升业务运营与用户体验

在当今数字化商业环境中&#xff0c;会员充值消费管理系统已经成为各类商家提高客户粘性、优化服务流程、增强市场竞争力的重要工具。那么如何通过会员充值消费管理系统提升业务运营与用户体验&#xff0c;商家是否有所了解呢&#xff1f;下面就带大家简单了解。 首先&#xf…

计算机网络 综合(习题)

【计算机网络习题】系列文章目录 计算机网络 第一章 绪论(习题) 计算机网络 第二章 计算机网络体系结构(习题) 计算机网络 第三章 应用层(习题) 计算机网络 第四章 运输层(习题) 计算机网络 第五章 网络层(习题) 计算机网络 第六章 数据链路层(习题) 计算机网络 第七章 物…

基于多反应堆的高并发服务器【C/C++/Reactor】(中)添加 删除 修改 释放

在上篇文章&#xff08;处理任务队列中的任务&#xff09;中我们讲解了处理任务队列中的任务的具体流程&#xff0c;eventLoopProcessTask函数的作用&#xff1a; 处理队列中的任务&#xff0c;需要遍历链表并根据type进行对应处理,也就是处理dispatcher中的任务。 // 处理任…

Hystrix熔断/断路器

简介 Hystrix是一个用于处理分布式系统的延迟和容错的开源库&#xff0c;在分布式系统里&#xff0c;许多依赖不可避免的会调用失败&#xff0c;比如超时、异常等&#xff0c;Hystrix能够保证在一个依赖出问题的情况下&#xff0c;不会导致整体服务失败&#xff0c;避免级联故…

Kubernetes复习总结(二):Kubernetes容器网络

2、Kubernetes容器网络 1&#xff09;、Docker网络原理 Docker默认使用的网络模型是bridge&#xff0c;这里只讲bridge网络模型 1&#xff09;容器之间通信原理 当安装完docker之后&#xff0c;docker会在宿主机上创建一个名叫docker0的网桥&#xff0c;默认IP是172.17.0.1…

【DevOps-05】Integrate工具

一、简要说明 持续集成、持续部署的工具很多,其中Jenkins是一个开源的持续集成平台。 Jenkins涉及到将编写完毕的代码发布到测试环境和生产环境的任务,并且还涉及到了构建项目等任务。 Jenkins需要大量的插件保证工作,安装成本较高,下面会基于Docker搭建Jenkins。 二、Jenk…

Opencv与PyQt5设计一个摄像头界面

一、前言 本篇的内容是学习的这一位博主的&#xff1a;程序界面设计_Doc_Cheng的博客-CSDN博客。 这是我见过很详细的教你如何使用的PyQt5来完成UI界面设计的&#xff0c;专注于UI界面设计。对我而言&#xff0c;这教程就像是一个实用工具&#xff0c;因为我只需要能够显示图…

K8S Prometheus-rocketmq-exporter配置

下载rocketmq-exporter 通过Docker仓库下载 docker pull sawyerlan/rocketmq-exporter:latest 然后打标签&#xff0c;推送到自己的仓库 也可通过代码自己build镜像 git clone GitHub - apache/rocketmq-exporter: Apache RocketMQ Prometheus Exporter 然后打标签&#x…