HarmonyOS ArkTS 下拉列表组件
@Entry
@Component
struct Index {defaultValue: string = '下拉列表';// 定义选项数组,包含 value 和可选的 labeloptions: Array<SelectOption> = [{ value: 'aaa' },{ value: 'bbb' },{ value: 'ccc' },{ value: 'ddd' },{ value: 'eee' },{ value: 'fff' },{ value: 'ggg' },{ value: 'hhh' },{ value: 'iii' },{ value: 'jjj' },{ value: 'kkk' },{ value: 'lll' },{ value: 'mmm' },{ value: 'nnn' },{ value: 'ooo' },{ value: 'ppp' },{ value: 'qqq' }];build() {Column() {Select(this.options)// 设置初始选中的选项索引.selected(0)// 设置默认显示的文字.value(this.defaultValue)// 设置默认展示的字体大小和字重.font({ size: 25, weight: 600 })// 设置选择框字体的颜色.fontColor('#182431')// 设置已选择的项字体样式.selectedOptionFont({ size: 30, weight: 800 })// 设置下拉选项的字体样式.optionFont({ size: 20, weight: 400 })// 设置选择事件的回调函数.onSelect((index: number) => {// 选择项发生变化时打印选中的索引let selectedValue = this.options[index].valueconsole.info('Select: index is ' + index + ' selectedValue is ' + selectedValue)})}.width('100%')}
}
这段代码是使用 ArkTS 编写的一个简单的 下拉选择框(Select
)组件,下面我会详细解释代码中的各个部分。
1. 结构和组件定义
@Entry@Componentstruct Index {}
@Entry
:这表示该组件是入口组件,通常在应用程序启动时会加载此组件。@Component
:标记该结构体为 ArkTS 中的一个组件,这使得Index
结构体能够渲染 UI。struct Index
:定义一个名为Index
的结构体,它代表该组件的内容。结构体可以包含状态(如数据)和方法(如 UI 构建方法)。
2. 组件状态和选项数据
defaultValue: string = '下拉列表';// 定义选项数组,包含 value 和可选的 labeloptions: Array<SelectOption> = [{ value: 'aaa' },{ value: 'bbb' },{ value: 'ccc' },{ value: 'ddd' },{ value: 'eee' },{ value: 'fff' },{ value: 'ggg' },{ value: 'hhh' },{ value: 'iii' },{ value: 'jjj' },{ value: 'kkk' },{ value: 'lll' },{ value: 'mmm' },{ value: 'nnn' },{ value: 'ooo' },{ value: 'ppp' },{ value: 'qqq' }];
selectedValue
:这是一个字符串类型的状态,表示当前选中的下拉选项的值,初始值为'下拉列表'
。options
:这是一个Array<SelectOption>
类型的数组,表示下拉框的选项列表。每个选项是一个对象,包含一个value
字段(选项的值)。此处使用的是简化的选项对象结构,只有value
字段。- 注意:这里的
SelectOption
是一个类型或接口,它并没有明确显示,但可以推测其结构应该至少包含一个value: string
字段。
- 注意:这里的
3. 构建 UI
build() {Column() {Select(this.options)// 设置初始选中的选项索引.selected(0)// 设置默认显示的文字.value('下拉列表')// 设置默认展示的字体大小和字重.font({ size: 25, weight: 600 })// 设置选择框字体的颜色.fontColor('#182431')// 设置已选择的项字体样式.selectedOptionFont({ size: 30, weight: 800 })// 设置下拉选项的字体样式.optionFont({ size: 20, weight: 400 })// 设置选择事件的回调函数.onSelect((index: number) => {// 选择项发生变化时打印选中的索引let selectedValue = this.options[index].valueconsole.info('Select: index is ' + index + ' selectedValue is ' + selectedValue)})}.width('100%')}
这是 Index
组件的 build
方法,用来定义该组件的 UI。
Column()
:表示该 UI 组件的布局容器(类似于一个垂直的线性布局容器),所有子元素会在这个容器中垂直排列。Select(this.options)
:这是一个下拉选择框组件,this.options
作为参数传入,表示下拉框的选项列表。- 该
Select
组件将使用options
数组中的对象来渲染下拉框,value
字段对应每个选项的显示值。
- 该
链式方法设置:
.selected(1)
:设置默认选中的选项索引为1
(即选择bbb
,因为索引是从0
开始的)。.value('下拉列表')
:设置选择框的默认显示值,即下拉框的显示文字。这里的'下拉列表'
是静态文本,显示在下拉框中。.font({ size: 16, weight: 500 })
:设置下拉框中显示文本的字体大小为 16px,加粗程度为 500。.fontColor('#182431')
:设置下拉框中显示文本的颜色为#182431
。.selectedOptionFont({ size: 30, weight: 800 })
:设置已选中的选项的字体样式,字体大小为 30px,粗细为 800(即加粗)。.optionFont({ size: 16, weight: 400 })
:设置下拉选项的字体样式,字体大小为 16px,正常粗细(400)。.onSelect((index: number) => {...})
:设置选项选择时的回调函数。当用户选择下拉框中的某个选项时,会触发onSelect
方法。该方法接收index
(选中的选项的索引)作为参数:- 在回调函数中,
this.options[index].value
用来获取选中的选项的值(即aaa
、bbb
、ccc
或ddd
)。 console.info(...)
打印出选择的索引和选中的值,帮助调试和查看用户的选择。
- 在回调函数中,
4. 容器宽度设置
.width('100%')
:设置Column()
容器的宽度为 100%。这意味着下拉框会占据屏幕或父容器的全部宽度。
总结
- 该组件定义了一个下拉选择框,提供了 4 个选项(
aaa
、bbb
、ccc
、ddd
)。 - 默认选中的选项索引为
1
,即显示bbb
。 - 通过链式调用方法,设置了下拉框的字体样式、颜色以及选中项的显示效果。
- 当用户选择不同的选项时,
onSelect
回调会输出选中的项的索引和对应的值。
相关文章:

HarmonyOS ArkTS 下拉列表组件
Entry Component struct Index {defaultValue: string 下拉列表;// 定义选项数组,包含 value 和可选的 labeloptions: Array<SelectOption> [{ value: aaa },{ value: bbb },{ value: ccc },{ value: ddd },{ value: eee },{ value: fff },{ value: ggg },{…...

zabbix监控Linux系统
1. zabbix agent安装 #sudo rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/8/x86_64/zabbix-release-6.0-4.el8.noarch.rpm #sudo dnf clean all #yum install zabbix-agent -y Running transaction test Transaction test succeeded. Running transactionPreparing …...
线性表-数组描述补充 迭代器(C++)
补充线性表数组实现的迭代器部分 知识点: typedef是C语言中的一个关键字,它的主要作用是为一种数据类型定义一个新的名字(别名)。 在 C 的 STL(Standard Template Library)中,迭代器是连接容…...

vue3 + element-plus 的 upload + axios + django 文件上传并保存
之前在网上搜了好多教程,一直没有找到合适自己的,要么只有前端部分没有后端,要么就是写的不是很明白。所以还得靠自己摸索出来后,来此记录一下整个过程。 其实就是不要用默认的 action,要手动实现上传方式 http-reque…...

dm 创建数据库实例【window】
参考链接:配置实例 1)打开 DM 数据库配置助手 2)按照默认的进行 字符串大小写敏感:譬如 mysql 默认是大小写不敏感,如果在迁移中还选择了 保持对象大小写,那么就会出现一种情况就是每次查询等带有表名的都…...
Docker实践与应用举例:从入门到进阶
Docker实践与应用举例:从入门到进阶 在云计算和微服务架构日益盛行的今天,Docker作为一种轻量级的容器化技术,凭借其高效、灵活、可移植的特点,迅速成为了开发和运维团队的首选工具。本文将通过深入浅出的方式,探讨Do…...
【LeetCode】【算法】560. 和为 K 的子数组
LeetCode 560. 和为 K 的子数组 题目描述 给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 k 的子数组的个数 。 子数组是数组中元素的连续非空序列。 思路 思路:前缀和 定义数组preSum[nums.length1],在里面计算nums…...

Webots控制器编程
本文主要内容是如何编写Webots控制器,使用语言为Python。 文章目录 1. 新增控制器2. Hello World Example3. 读取传感器4. 使用执行器5. 理解step和robot.step函数6. 同时使用传感器和执行器7. 控制器参数 1. 新增控制器 对机器人Robot新增控制器的方式࿱…...

舷外机,高效动力的选择,可靠性能的保障_鼎跃安全
舷外机是现代船只动力系统中的核心设备,广泛应用于娱乐船、渔船、巡逻船、救援船等多种场景。它不仅提供船只的动力支持,还因其结构简便、操作灵活和维护方便,成为水上作业的重要组成部分。 一、舷外机的功能作用 1. 强劲动力源 舷外机是船…...

计算机新手练级攻略——如何搜索问题
目录 计算机学生新手练级攻略——如何搜索问题1.明确搜索意图2.使用精确关键词3.使用专业引擎搜索4.利用好技术社区1. Stack Overflow2. GitHub3. IEEE Xplore4. DBLP 5.使用代码搜索工具1. GitHub 代码搜索2. Stack Overflow 代码搜索3. Papers with Code4. IEEE Xplore 6.查阅…...

echarts-gl 3D柱状图配置
1. 源码 此demo可以直接在echarts的编辑器中运行 option {title: {text: 产量图,textStyle: {color: rgba(255, 255, 255, 1),fontSize: 17},left: center},tooltip: {},legend: {show: false,orient: vertical,x: left,top: 0,right: 20,textStyle: {fontSize: 12}},visualM…...

设计模式之模版方法模式(Template)
一、模版方法模式介绍 1、模版方法模式定义: 模板方法模式(template method pattern)原始定义是:在操作中定义算法的框架,将一些 步骤推迟到子类中。模板方法让子类在不改变算法结构的情况下重新定义算法的某些步骤。 模板方法中的算法可以理…...

背包九讲——背包问题求具体方案
目录 背包问题求具体方案 1. 01 背包问题 题目:12. 背包问题求具体方案 - AcWing题库 算法思路: 代码实现: 2. 多重背包问题 算法思路: 3. 完全背包问题 算法思路: 代码实现: 背包问题第九讲—…...

Python http打印(http打印body)flask demo(http调试demo、http demo、http printer)
文章目录 代码解释 代码 # flask_http_printer.pyfrom flask import Flask, request, jsonify import jsonapp Flask(__name__)app.route(/printinfo, methods[POST]) def print_info():# 分隔符separator "-" * 60# 获取请求头headers request.headers# 获取 JS…...
JSF HTML标签教程一口气讲完!(下)
JSF OutputScript示例 JSF教程 - JSF OutputScript示例 h:outputScript标记渲染类型为“script"的HTML元素,类型为“text/javascript"。 此标记将外部JavaScript文件添加到JSF页面。 以下JSF标记 <h:outputScript library"js" name"…...
cmake报错The link interface of target “gRPC::grpc“ contains: OpenSSL::SSL 解决
系统环境:麒麟V10 报错描述: The link interface of target "gRPC::grpc" contains: OpenSSL::SSL but the target was not found. Possible reasons include: * There is a typo in the target name. * A find_package call is missing fo…...

C语言PythonBash:空白(空格、水平制表符、换行符)与转义字符
C语言 空白 C语言中的空白(空格、水平制表符、换行符)被用于分隔Token,因此Token间可以有任意多个空白。 // 例1 printf("Hello, World!"); 例1中存在5个Token,分别是: printf("Hello, World! \n&qu…...
【Python】轻松解析JSON与XML:Python标准库的json与xml模块
轻松解析JSON与XML:Python标准库的json与xml模块 在现代数据处理与交换中,JSON(JavaScript Object Notation)和XML(eXtensible Markup Language)是最常用的两种数据格式。它们广泛应用于API数据传输、配置…...

物联网对商业领域的影响
互联网彻底改变了通信方式,并跨越了因地理障碍造成的人与人之间的鸿沟。然而,物联网(IoT)的引入通过使设备能够连接到互联网,改变了设备的功能。想象一下,你的闹钟连接到互联网,并且能够用你的声…...

第16章 SELECT 底层执行原理
一、SELECT查询的完整结构 1.1 方式一(SQL 92语法) SELECT ..., ..., ... FROM ..., ..., ... WHERE 多表的连接条件 AND 不包含组函数的过滤条件 GROUP BY ..., ... HAVING 包含组函数的过滤条件 ORDER BY ... ASC/DESC LIMIT ..., ... 1.2 方式二&a…...
谷歌浏览器插件
项目中有时候会用到插件 sync-cookie-extension1.0.0:开发环境同步测试 cookie 至 localhost,便于本地请求服务携带 cookie 参考地址:https://juejin.cn/post/7139354571712757767 里面有源码下载下来,加在到扩展即可使用FeHelp…...
基于大模型的 UI 自动化系统
基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...

Spark 之 入门讲解详细版(1)
1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室(Algorithms, Machines, and People Lab)开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目,8个月后成为Apache顶级项目,速度之快足见过人之处&…...

2025年能源电力系统与流体力学国际会议 (EPSFD 2025)
2025年能源电力系统与流体力学国际会议(EPSFD 2025)将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会,EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...
在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:
在 HarmonyOS 应用开发中,手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力,既支持点击、长按、拖拽等基础单一手势的精细控制,也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档,…...

【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器
——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的一体化测试平台,覆盖应用全生命周期测试需求,主要提供五大核心能力: 测试类型检测目标关键指标功能体验基…...

Ascend NPU上适配Step-Audio模型
1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统,支持多语言对话(如 中文,英文,日语),语音情感(如 开心,悲伤)&#x…...
Spring AI 入门:Java 开发者的生成式 AI 实践之路
一、Spring AI 简介 在人工智能技术快速迭代的今天,Spring AI 作为 Spring 生态系统的新生力量,正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务(如 OpenAI、Anthropic)的无缝对接&…...

零基础设计模式——行为型模式 - 责任链模式
第四部分:行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习!行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想:使多个对象都有机会处…...
Java毕业设计:WML信息查询与后端信息发布系统开发
JAVAWML信息查询与后端信息发布系统实现 一、系统概述 本系统基于Java和WML(无线标记语言)技术开发,实现了移动设备上的信息查询与后端信息发布功能。系统采用B/S架构,服务器端使用Java Servlet处理请求,数据库采用MySQL存储信息࿰…...