鸿蒙OS开发实例:【demo选择列表限定数量】

2024-03-27 01:36

本文主要是介绍鸿蒙OS开发实例:【demo选择列表限定数量】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

效果图:

cke_143.png

示例代码

// 使用 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喔

这篇关于鸿蒙OS开发实例:【demo选择列表限定数量】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/850529

相关文章

Android开发环境配置避坑指南

《Android开发环境配置避坑指南》本文主要介绍了Android开发环境配置过程中遇到的问题及解决方案,包括VPN注意事项、工具版本统一、Gerrit邮箱配置、Git拉取和提交代码、MergevsR... 目录网络环境:VPN 注意事项工具版本统一:android Studio & JDKGerrit的邮

Python开发文字版随机事件游戏的项目实例

《Python开发文字版随机事件游戏的项目实例》随机事件游戏是一种通过生成不可预测的事件来增强游戏体验的类型,在这篇博文中,我们将使用Python开发一款文字版随机事件游戏,通过这个项目,读者不仅能够... 目录项目概述2.1 游戏概念2.2 游戏特色2.3 目标玩家群体技术选择与环境准备3.1 开发环境3

Go语言开发实现查询IP信息的MCP服务器

《Go语言开发实现查询IP信息的MCP服务器》随着MCP的快速普及和广泛应用,MCP服务器也层出不穷,本文将详细介绍如何在Go语言中使用go-mcp库来开发一个查询IP信息的MCP... 目录前言mcp-ip-geo 服务器目录结构说明查询 IP 信息功能实现工具实现工具管理查询单个 IP 信息工具的实现服

Vue3组件中getCurrentInstance()获取App实例,但是返回null的解决方案

《Vue3组件中getCurrentInstance()获取App实例,但是返回null的解决方案》:本文主要介绍Vue3组件中getCurrentInstance()获取App实例,但是返回nu... 目录vue3组件中getCurrentInstajavascriptnce()获取App实例,但是返回n

Python列表去重的4种核心方法与实战指南详解

《Python列表去重的4种核心方法与实战指南详解》在Python开发中,处理列表数据时经常需要去除重复元素,本文将详细介绍4种最实用的列表去重方法,有需要的小伙伴可以根据自己的需要进行选择... 目录方法1:集合(set)去重法(最快速)方法2:顺序遍历法(保持顺序)方法3:副本删除法(原地修改)方法4:

SQL表间关联查询实例详解

《SQL表间关联查询实例详解》本文主要讲解SQL语句中常用的表间关联查询方式,包括:左连接(leftjoin)、右连接(rightjoin)、全连接(fulljoin)、内连接(innerjoin)、... 目录简介样例准备左外连接右外连接全外连接内连接交叉连接自然连接简介本文主要讲解SQL语句中常用的表

使用Python开发一个带EPUB转换功能的Markdown编辑器

《使用Python开发一个带EPUB转换功能的Markdown编辑器》Markdown因其简单易用和强大的格式支持,成为了写作者、开发者及内容创作者的首选格式,本文将通过Python开发一个Markd... 目录应用概览代码结构与核心组件1. 初始化与布局 (__init__)2. 工具栏 (setup_t

Spring Shell 命令行实现交互式Shell应用开发

《SpringShell命令行实现交互式Shell应用开发》本文主要介绍了SpringShell命令行实现交互式Shell应用开发,能够帮助开发者快速构建功能丰富的命令行应用程序,具有一定的参考价... 目录引言一、Spring Shell概述二、创建命令类三、命令参数处理四、命令分组与帮助系统五、自定义S

鸿蒙中Axios数据请求的封装和配置方法

《鸿蒙中Axios数据请求的封装和配置方法》:本文主要介绍鸿蒙中Axios数据请求的封装和配置方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1.配置权限 应用级权限和系统级权限2.配置网络请求的代码3.下载在Entry中 下载AxIOS4.封装Htt

鸿蒙中@State的原理使用详解(HarmonyOS 5)

《鸿蒙中@State的原理使用详解(HarmonyOS5)》@State是HarmonyOSArkTS框架中用于管理组件状态的核心装饰器,其核心作用是实现数据驱动UI的响应式编程模式,本文给大家介绍... 目录一、@State在鸿蒙中是做什么的?二、@Spythontate的基本原理1. 依赖关系的收集2.