效果图:

示例代码
// 使用 DevEco Studio 3.1.1 Release 及以上版本,API 版本为 api 9 及以上。
// 主要功能及注意事项:
// 该组件展示了一个乘客选择列表。列表中的每个项目包含一个复选框和对应的乘客姓名,
// 用户点击任意一项即可切换其选中状态。组件通过限制最多只能选择5名乘客,
// 并在超过限制时通过promptAction模块弹出 toast 提示用户。
// 注意,代码中的Checkbox组件目前设置为不可更改(enabled(false)),
// 在实际应用中可以根据需求决定是否允许用户手动改变复选框状态。
// 导入提示操作模块
import promptAction from '@ohos.promptAction';
// 定义数据模型类ItemData
class ItemData {
// 名字属性
name: string;
// 是否选中属性
isSelect: boolean;
// 构造函数初始化数据
constructor(name: string, isSelect: boolean) {
this.name = name;
this.isSelect = isSelect;
}
}
// 标记为入口文件并创建组件
@Entry
@Component
struct test {
// 状态变量arr用于存储ItemData对象数组
@State arr: Array< ItemData > = [
new ItemData('赵大', false),
new ItemData('钱二', false),
new ItemData('张三', false),
new ItemData('李四', false),
new ItemData('王五', false),
new ItemData('周六', false),
new ItemData('李七', false),
new ItemData('朱八', false)
];
// 构建UI组件的方法
build() {
// 创建垂直方向布局
Column() {
// 显示提示文本
Text('请选择乘客,最多限五人')
.margin({ top: '60lpx', left: '50lpx', bottom: '10lpx' });
// 遍历存储乘客信息的数据数组
ForEach(this.arr, (item: ItemData, index: number) = > {
// 创建水平方向布局
Row() {
// 创建复选框组件,禁用修改(此处可能是样式演示,实际应用中可去除.enabled(false))
Checkbox()
.enabled(false)
.select(item.isSelect)
.width('41lpx')
.height('41lpx')
.selectedColor("#FF53B175");
// 显示乘客姓名文本
Text(item.name)
.fontSize('27lpx')
.margin({ left: '10lpx' })
.fontWeight(400)
.fontColor(item.isSelect ? "#FF53B175" : "#FF181725")
// 当行组件点击事件处理
}
.onClick(() = > {
// 反转当前项的选中状态
item.isSelect = !item.isSelect;
// 计算已选中乘客数量
let isSelectCount = 0;
for (let i = 0; i < this.arr.length; i++) {
if (this.arr[i].isSelect) {
isSelectCount++;
}
}
// 如果已选中超过5人,则恢复当前项未选中状态并弹出提示
if (isSelectCount > 5) {
item.isSelect = !item.isSelect;
try {
// 使用promptAction模块显示toast消息
promptAction.showToast({
message: '最多限五人',
duration: 2000,
bottom: '375lpx'
});
} catch (error) {
// 忽略错误
}
return;
}
// 更新数组中对应项的状态
this.arr[index] = new ItemData(item.name, item.isSelect);
})
// 设置行组件的边距
.margin({ left: '40lpx', top: '10lpx' })
})
} // 设置Column组件的整体样式
.width('100%')
.height('100%')
.backgroundColor("#FFF2F3F2")
.justifyContent(FlexAlign.Start)
.alignItems(HorizontalAlign.Start);
}
}
审核编辑 黄宇
| 鸿蒙OS开发 | 更多内容↓点击 | HarmonyOS与OpenHarmony技术 |
|---|---|---|
| 鸿蒙技术文档 | 开发知识更新库gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md在这。 | 或+mau123789学习,是v喔 |
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
鸿蒙
+关注
关注
60文章
3058浏览量
46263 -
鸿蒙OS
+关注
关注
0文章
194浏览量
5579
发布评论请先 登录
相关推荐
热点推荐
开源鸿蒙6.1 Release版本正式发布,在鸿OS 6.1率先完成升级适配!
3月8日,开源鸿蒙6.1Release版本正式发布!作为新一代版本,6.1在应用开发能力、系统体验、多媒体与安全等领域带来全面升级,为生态商用落地注入全新动能。作为开放原子开源基金会黄金捐赠人、开源
证书数量达到上限处理方式
AGC各个类型的证书都存在数量限制。当数量达到上限时,可选择以下任意一种方式处理:
废除对应类型下多余的证书。废除前请确保该证书未被任何应用使用。
当存在多个应用时,可以让多个应用使用同一个证书。以
发表于 01-16 10:05
FreeRTOS与uC/OS-II如何选择?
联网、消费电子、工业控制等领域。其开源许可、强大的生态系统、社区活跃度和 AWS 的强力支持是其不可比拟的优势。
uC/OS-II 是一个设计精良、久经考验的 RTOS, 以其可靠性和严谨性著称。开源后大大降低了使用门槛。它仍然是许多传统关键应用和熟悉其体系的开发者的可靠
发表于 11-13 07:15
【汇思博SEEK100开发板试用体验】在开发板鸿蒙OS搭建QT开发环境
、基于 SEEK100 开发板的 QT 鸿蒙应用开发流程
(一)创建 QT 项目
在 Qt Creator 中,通过常规的新建项目流程,选择合适的 Qt 项目模板,例如基于 Widg
发表于 08-24 18:34
鸿蒙5开发宝藏案例分享---一多开发实例(音乐)
各位开发者小伙伴们好呀!今天咱们来点硬核干货!最近在鸿蒙文档中心挖到一座“金矿”——官方竟然暗藏了100+实战案例,从分布式架构到交互动效优化应有尽有!这些案例不仅藏着华为工程师的私房技巧,还直接
鸿蒙5开发宝藏案例分享---长列表性能优化解析
鸿蒙长列表性能优化大揭秘!告别卡顿,实战代码解析来了!
大家好呀~今天在翻鸿蒙开发者文档时,发现了个 性能优化宝藏案例 !官方居然悄悄放出了长列表
发表于 06-12 17:40
鸿蒙5开发宝藏案例分享---性能优化案例解析
鸿蒙性能优化宝藏指南:实战工具与代码案例解析
大家好呀!今天在翻鸿蒙开发者文档时,意外挖到一个 性能优化宝藏库 ——原来官方早就提供了超多实用工具和案例,但很多小伙伴可能没发现!这篇就带大家手把手
发表于 06-12 16:36
鸿蒙5开发宝藏案例分享---一多开发实例(游戏)
?【开发者必看】鸿蒙隐藏宝箱大公开!这些实战案例让你的开发效率翻倍!
哈喽各位开发者小伙伴!今天要和大家分享一个让我拍大腿的发现——原来鸿蒙
发表于 06-03 18:22
鸿蒙5开发案例分享揭秘---一多开发实例(商务办公)
?【鸿蒙开发宝藏案例大揭秘】原来官方文档里藏了这么多好东西!
大家好呀~最近在肝鸿蒙项目时意外扒出了官方文档里的\"藏宝库\"!原来那些让人头秃的跨端适配难题,官方早就准备好
发表于 06-03 16:24
鸿蒙5开发宝藏案例分享---一多开发实例(地图导航)
案例!最近在肝鸿蒙项目时意外发现了这个地图导航的\"一多\"开发实例,简直像发现新大陆!这就带大家沉浸式体验这个超实用的开发模板~
? 先划重点:这个案例完美演示了如何用一套代码搞定
发表于 06-03 16:17
鸿蒙5开发宝藏案例分享---一多开发实例(旅行订票)
? 鸿蒙开发宝藏大发现!一多开发实战案例解析(旅行订票篇)
大家好!今天在翻鸿蒙开发者文档时,意外发现了官方藏着一整片\"案例绿洲\"!尤其
发表于 06-03 16:16
鸿蒙5开发宝藏案例分享---一多开发实例(购物比价)
【鸿蒙开发宝藏案例大公开!】手把手教你用\"一多\"能力打造跨端购物比价App
小伙伴们好呀!今天要和大家分享一个鸿蒙开发的隐藏宝典——官方购物比价应用
发表于 06-03 16:07
鸿蒙5开发宝藏案例分享---一多开发实例(社区评论)
应用” 的一多开发实例,看完直呼“原来还能这样玩?!” ? 必须整理出来和大家唠唠,顺便带大家手把手拆解几个核心案例!
?** 一多开发是啥?一句话总结:**
一次开发,自动适配手机、
发表于 06-03 16:03
鸿蒙5开发宝藏案例分享---一多开发实例(长视频)
【?鸿蒙开发宝藏案例大起底!原来官方藏了这么多干货!】
大家好呀~最近在折腾鸿蒙应用开发的时候,意外发现了官方文档里藏着一堆超实用的开发案例
发表于 06-03 15:58
鸿蒙OS开发实例:【demo选择列表限定数量】
评论