论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com技术社区
»
论坛
›
软件与程序人生
›
移动端开发
›
鸿蒙
›
HarmonyOS Next——ArkUI 开发案例
HarmonyOS Next——ArkUI 开发案例
石小疯
论坛元老
|
2025-4-6 12:42:34
|
显示全部楼层
|
阅读模式
楼主
主题
1854
|
帖子
1854
|
积分
5562
ArkUI 是华为为 HarmonyOS 应用
开发
提供的一套 UI
开发
框架,支持声明式编程和组件化
开发
。本文将通过一个简单的猜数字游戏,资助初学者快速上手 ArkUI
开发
。我们将从零开始构建一个完备的应用,涵盖状态管理、变乱处理、组件布局等核心概念。
游戏概述
猜数字游戏的规则如下:
程序随机天生一个 1 到 100 之间的数字作为目的数字。
用户输入一个数字举行猜测。
程序会根据用户的输入提示“猜的数字太小了”、“猜的数字太大了”或“恭喜你,猜对了!”。
用户可以点击“重新开始”按钮,重新天生目的数字并重置游戏状态。
开发
步调
1. 环境准备
确保你已经安装了 DevEco Studio 并配置好了
开发
环境。如果还没有安装,可以从华为
开发
者官网下载并安装。
2. 创建新项目
打开 DevEco Studio,点击“Create New Project”。
选择“Empty Ability”模板,点击“Next”。
输入项目名称,比方“GuessNumberGame”,选择生存路径,点击“Finish”。
3. 编写代码
在 entry/src/main/ets/pages/Index.ets 文件中编写以下代码:
@Entry
@Component
struct GuessNumberGame {
@State private targetNumber: number = Math.floor(Math.random() * 100) + 1; // 目标数字
@State private userGuess: string = ''; // 用户输入
@State private message: string = '请输入 1 到 100 之间的数字进行猜测。'; // 提示信息
// 重置游戏
private resetGame() {
this.targetNumber = Math.floor(Math.random() * 100) + 1;
this.userGuess = '';
this.message = '请输入 1 到 100 之间的数字进行猜测。';
}
// 处理用户猜测
private handleGuess() {
const guess = parseInt(this.userGuess);
if (isNaN(guess)) {
this.message = '请输入一个有效的数字。';
} else if (guess < 1 || guess > 100) {
this.message = '请输入 1 到 100 之间的数字。';
} else if (guess < this.targetNumber) {
this.message = '猜的数字太小了,再试试。';
} else if (guess > this.targetNumber) {
this.message = '猜的数字太大了,再试试。';
} else {
this.message = '恭喜你,猜对了!';
}
}
build() {
Column({ space: 20 }) {
Text(this.message)
.fontSize(18)
.fontColor(this.message.includes('恭喜') ? '#00FF00' : '#000000') // 猜对时改变文字颜色
TextInput({
placeholder: '输入你的猜测',
text: this.userGuess
})
.onChange((value: string) => {
// 只允许输入数字
if (/^\d*$/.test(value)) {
this.userGuess = value;
}
})
.width('80%')
.padding(10)
.borderRadius(5)
.borderWidth(1)
.borderColor('#CCCCCC')
Button('提交猜测')
.onClick(() => {
this.handleGuess();
})
.width('50%')
.padding(10)
.backgroundColor('#007BFF')
.fontColor('#FFFFFF')
Button('重新开始')
.onClick(() => {
this.resetGame();
})
.width('50%')
.padding(10)
.backgroundColor('#6C757D')
.fontColor('#FFFFFF')
}
.width('100%')
.height('100%')
.justifyContent(FlexAlign.Center) // 垂直居中
}
}
复制代码
4. 代码剖析
1.
状态管理
使用 @State 装饰器声明状态变量:
targetNumber:目的数字,随机天生。
userGuess:用户输入的数字。
message:提示信息。
@State 的作用是让 ArkUI 监听这些变量的变化,并在变化时自动更新界面。
2.
组件布局
使用 Column 组件实现垂直布局。
Text 组件用于体现提示信息。
TextInput 组件用于接收用户输入。
Button 组件用于提交猜测和重置游戏。
3.
变乱处理
TextInput 的 onChange 变乱:监听用户输入,并限定输入内容为数字。
Button 的 onClick 变乱:处理用户提交的猜测或重置游戏。
4.
游戏逻辑
handleGuess 方法:根据用户输入判定猜测结果,并更新提示信息。
resetGame 方法:重置目的数字和游戏状态。
5. 运行项目
点击 DevEco Studio 工具栏上的“Run”按钮,选择一个模仿器或真机设备运行项目。
你将看到一个简单的猜数字游戏界面:
输入框中输入数字并点击“提交猜测”按钮,程序会提示猜测结果。
点击“重新开始”按钮,可以重新天生目的数字并重置游戏状态。
关键知识点
1.
ArkUI 组件
Text:用于体现文本。
TextInput:用于接收用户输入。
Button:用于触发点击变乱。
Column:用于垂直布局。
2.
状态管理
使用 @State 装饰器声明状态变量,ArkUI 会自动监听这些变量的变化并更新界面。
3.
变乱处理
onChange:监听输入内容的变化。
onClick:监听按钮的点击变乱。
4.
布局与样式
使用 width、height、padding 等属性设置组件的大小和间距。
使用 fontSize、fontColor 等属性设置文本样式。
总结
通过这个猜数字游戏项目,信赖你已经掌握了 ArkUI 的根本
开发
流程,包括状态管理、变乱处理、组件布局等核心概念。盼望本文对你学习 ArkUI
开发
有所资助!
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
石小疯
论坛元老
这个人很懒什么都没写!
楼主热帖
解决图片无法设置hover,以设置图片的 ...
SQL的多表查询
C# GDI+ 画心形 跳动动画
解决OpenCV的imread/imwrite在Qt环境不 ...
几个函数的使用例子:更新VBRK-XBLNR, ...
Hive安装与启动
qrtz表初始化脚本_mysql
MySQL基础(DDL、DML、DQL)
堆Pwn:House Of Storm利用手法
在 NGINX 中根据用户真实 IP 进行限制 ...
标签云
AI
运维
CIO
存储
服务器
浏览过的版块
云原生
主机安全
图数据库
SQL-Server
快速回复
返回顶部
返回列表