当前位置: 首页 > news >正文

HarmonyOS ArkTS 的新手练手样例:Rating 星级评分交互

开头

这一篇只讲一个主角:Rating。

做一个课程评分控件,点击星星后显示评分结果。 对新手来说,学习控件最有效的方法不是把官方属性一次背完,而是先把一个完整页面跑起来,然后围绕这个页面改尺寸、改状态、改事件。下面的代码就是配套截图 App 中已经编译通过的完整页面。

本篇目标

  • 看懂 Rating 的基础用法。
  • 能复制完整页面到 ArkTS 工程中运行。
  • 知道关键属性和事件分别控制什么。
  • 能基于同一个组件改出几个小样例。

对应 App 页面

配套 App 中,本篇对应页面文件是:

entry/src/main/ets/pages/RatingScorePage.ets

运行 App 后,从首页点击 Rating 入口即可进入本页截图。

完整页面代码

import{router}from'@kit.ArkUI';@Entry@Componentstruct RatingScorePage{@Statescore:number=4;build(){Column({space:18}){Row(){Button('<').width(44).height(36).onClick(()=>{router.back();})Text('Rating').fontSize(22).fontWeight(FontWeight.Bold).layoutWeight(1).textAlign(TextAlign.Center)Blank().width(44)}.width('100%')Column({space:18}){Text('课程评分').fontSize(30).fontWeight(FontWeight.Bold).fontColor('#126A5E')Rating({rating:this.score,indicator:false}).stars(5).stepSize(1).onChange((value:number)=>{this.score=value;})Text(`你给了${this.score}`).fontSize(18).fontColor('#1F2933')}.width('100%').padding(28).borderRadius(8).backgroundColor('#FFFFFF').alignItems(HorizontalAlign.Center)}.width('100%').height('100%').padding(20).backgroundColor('#F7F2E8')}}

核心属性和事件讲解

属性/事件作用本篇用法
rating当前评分绑定this.score
indicator是否只读false表示允许点击评分
.stars(5)星星总数常见 5 星评分
.stepSize(1)每次变化步长每次增减 1 星
.onChange()评分变化事件保存新评分

代码结构拆开看

1. 顶部返回栏

每个截图页都保留一个简单顶部栏:左边是返回按钮,中间是当前组件名称,右边用 Blank() 占位。这样做的好处是所有截图页面结构一致,后期整理文章配图时不会乱。

Row(){Button('<')Text('Rating')Blank()}

2. 主体卡片

主体区域才是本篇组件的练习区。截图 Demo 里统一使用浅色背景和白色卡片,是为了让控件更清楚地被看到。真实项目里你可以把这些颜色替换成自己的设计规范。

3. 状态和事件

如果页面里有 @State,它就是驱动界面变化的数据。事件里修改状态,界面就会跟着刷新。这个规则在 Search、TextArea、Progress、Rating、Radio、Select、LoadingProgress 这些页面里都能看到。

再做几个小样例

样例 1:只读评分

Rating({rating:4,indicator:true}).stars(5)

样例 2:半星评分

Rating({rating:this.score,indicator:false}).stepSize(0.5)

样例 3:评分文案

Text(this.score>=4?'很满意':'还可以继续改进')

新手常见问题

  1. 只复制了组件,没有复制 @State。如果组件依赖状态,页面会报错或无法交互。
  2. 只改了显示文本,没有改事件里的状态变量,导致看起来“点了没反应”。
  3. 截图页没有固定宽高或留白,模拟器尺寸一变,画面就挤在一起。

本篇小结

Rating 的学习重点是先把“能运行的完整页面”看懂,再去拆属性和事件。你可以直接使用本篇完整代码截图,也可以从“再做几个小样例”里挑一个继续改。

附录:项目设置与构建问题记录

一、项目设置

本篇配套一个独立 ArkTS 示例 App,用于运行页面和截图:

建议用 DevEco Studio 打开项目后运行entry模块。项目定位是截图练习 Demo,不依赖后端服务,也不需要额外权限。

建议新建或检查工程时保持以下设置:

  • Project type:Application。
  • Template:Empty Ability。
  • Language:ArkTS。
  • Model:Stage。
  • Device:Phone,可按需要兼容 Tablet、2in1。
  • Runtime OS:HarmonyOS。

二、SDK 版本

本文主题面向 HarmonyOS ArkTS API 24+。本次示例工程根目录build-profile.json5使用如下配置:

{ "compatibleSdkVersion": "6.1.1(24)", "targetSdkVersion": "6.1.1(24)", "runtimeOS": "HarmonyOS" }

如果本机 DevEco Studio SDK Manager 中安装的版本不同,请按本机实际 API 24+ SDK 调整compatibleSdkVersiontargetSdkVersion

三、项目目录说明

核心目录如下:

HarmonyOS_ArkTS_API24_ControlsScreenshotApp/ ├── AppScope/ │ ├── app.json5 │ └── resources/ ├── entry/ │ ├── src/main/ets/entryability/EntryAbility.ets │ ├── src/main/ets/pages/ │ ├── src/main/resources/base/profile/main_pages.json │ ├── build-profile.json5 │ └── oh-package.json5 ├── build-profile.json5 ├── hvigorfile.ts └── oh-package.json5

页面文件都在:

entry/src/main/ets/pages/

路由注册文件在:

entry/src/main/resources/base/profile/main_pages.json

五、创建项目过程

  1. 打开 DevEco Studio。
  2. 点击 Create Project。
  3. 选择 Application。
  4. 模板选择 Empty Ability。
  5. 开发语言选择 ArkTS。
  6. 模型选择 Stage。
  7. 设置项目名称,例如ArkTSControlsDemo
  8. 选择保存路径,建议路径只包含英文、数字、下划线或连字符。
  9. 选择 API 24+ 对应 SDK。
  10. 点击 Finish,等待工程创建完成。
  11. 打开entry/src/main/ets/pages/Index.ets
  12. 运行默认工程,确认模拟器或真机能打开。
  13. 再逐个添加本文中的页面代码并截图。

六、本次编译安装遇到的问题与解决办法

1. 中文路径导致 Hvigor 拒绝构建

问题现象:

Invalid project path. Current path does not match: D:\私人资料\CSDN\HarmonyOS_ArkTS_API24_ControlsScreenshotApp

原因:Hvigor 对工程路径有限制,路径只能包含英文字母、数字、连字符、下划线、英文句点、英文括号、空格或@

处理办法:把项目复制到 ASCII 路径后构建:

D:\\HarmonyOS_ArkTS_API24_ControlsScreenshotApp

2.DEVECO_SDK_HOME环境变量无效

问题现象:

Invalid value of 'DEVECO_SDK_HOME' in the system environment path.

处理办法:在当前命令会话中临时指定 DevEco SDK 根目录:

$env:DEVECO_SDK_HOME='D:\Program Files\Huawei\DevEco Studio Beta\sdk'

3.hvigor-config.json5缺少dependencies

问题现象:

Schema validate failed ... missingProperty: 'dependencies'

处理办法:补齐hvigor/hvigor-config.json5

{ "modelVersion": "5.0.0", "dependencies": { } }

4. 打包阶段找不到 Java

问题现象:

spawn java ENOENT

处理办法:使用 DevEco Studio 自带 JBR,并停止旧的 Hvigor daemon 后重新构建:

$env:JAVA_HOME='D:\Program Files\Huawei\DevEco Studio Beta\jbr'$env:Path="D:\Program Files\Huawei\DevEco Studio Beta\jbr\bin;$env:Path"hvigorw--stop-daemon

5. 构建成功但有弃用警告

构建时出现过router.pushUrlrouter.backAlertDialog.show的弃用警告,但不影响本次截图 Demo 编译和安装。正式项目建议后续按当前 API 推荐方式替换。

七、本次安装启动记录

构建命令:

hvigorw--mode module-p module=entry@default-p product=default assembleHap

安装命令:

hdc install entry-default-unsigned.hap

启动命令:

hdc shell aastart-a EntryAbility-b com.csdn.arkts.controls.screenshot

验证结果:

  • HAP 构建成功。
  • 模拟器目标:127.0.0.1:5555
  • 安装结果:install bundle successfully
  • 启动结果:start ability successfully
http://www.jsqmd.com/news/1304027/

相关文章:

  • 舟山母婴除甲醛公司测甲醛中心怎么选:金耀母婴除甲醛标准、流程、避坑指南 - CMA甲醛检测中心
  • Verilog位拼接运算符{}:从基础语法到UART/SPI/CRC实战应用
  • Prompt提示词设计:提升AI交互效果的关键技巧
  • 2026年最新英语教学APP,这3个实用功能别错过
  • 2026推荐:大连沙河口区酒店优惠预订服务团队怎么选?专业解析四大核心维度 - 装修教育财税推荐2026
  • 2026年端子厂家推荐榜单:回拉式端子/螺丝端子/双层端子台/插拔式端子/接线端子/町洋端子优质品牌深度解析 - 卓企推荐
  • 5分钟学会使用geojson.io:免费在线GeoJSON编辑器终极指南
  • 终极智能图片去重工具:AntiDupl.NET 完整使用指南
  • 企业微信API接口开发:外部联系人-群聊消息群发设计
  • 2026 沈阳市沈河区专业管道疏通优质服务商全解析 全域街道上门运维一站式服务指南 - 园子一号
  • 从SISO到MIMO:传递函数矩阵的核心原理、计算与MATLAB实践
  • DeepSeek大模型本地部署实战指南
  • 周口母婴除甲醛公司测甲醛中心怎么选:金耀母婴除甲醛标准、流程、避坑指南 - CMA甲醛检测中心
  • 烟台母婴除甲醛公司测甲醛中心怎么选:金耀母婴除甲醛标准、流程、避坑指南 - CMA甲醛检测中心
  • 在Mac上运行Windows应用:Whisky的完整指南
  • 2026下半年九江宣传片制作优选:江西奈企科技实力 - 装修教育财税推荐2026
  • 虚拟机开机过程中关机,再次开机没有分配 IP
  • SpringBoot2+Vue3企业级开发实战与优化指南
  • 2026年余姚门窗厂家选择参考:系统门窗、断桥铝门窗与阳光房生产工厂综合解析 - 优企名品
  • 基于MATLAB的数字基带无码间干扰传输系统的仿真设计
  • 13个实用技巧:告别平淡贝斯线,打造驱动歌曲的律动心脏
  • DAQ-GP-CT485电流互感器测试全流程:从硬件接线到Modbus通信调试
  • 2026年苏州市政管网养护推荐榜单:污泥压干/管道CCTV检测/雨水管道维修/河道清淤/非开挖修复实力服务商精选 - 优企名品
  • Unity与Socket构建实时远程监控系统:从原理到实践
  • 渭南母婴除甲醛公司测甲醛中心怎么选:金耀母婴除甲醛标准、流程、避坑指南 - CMA甲醛检测中心
  • ZYNQ架构深度解析:从ARM+FPGA到软硬件协同设计的嵌入式系统革命
  • 珠海母婴除甲醛公司测甲醛中心怎么选:金耀母婴除甲醛标准、流程、避坑指南 - CMA甲醛检测中心
  • AI运营工具实战指南:从账号配置到批量任务管理
  • STM32程序卡死?从C运行时库配置到启动流程的深度排查指南
  • 延安母婴除甲醛公司测甲醛中心怎么选:金耀母婴除甲醛标准、流程、避坑指南 - CMA甲醛检测中心