【HarmonyOS】HarmonyOS NEXT学习日记:一、创建和运行一个页面

【HarmonyOS】HarmonyOS NEXT学习日记:一

DevEco Studio下载与安装

直接到官网的下载地址下载即可
在这里插入图片描述
正常下载、解压、安装完成后
在这里插入图片描述

正常来说不会有项目,并且是英文界面。

需要汉化的话可以按照下面的步骤设置插件
选择customize里的 all setting 进入设置页面
在这里插入图片描述
进入plugins插件页面、进入installed已安装、然后搜索chinese找到汉化插件后选用enable启用,之后重启就实现汉化了。
在这里插入图片描述

构建一个应用

新建工程

新建项目->创建一个Empty Ability->啥都不用改直接finish
在这里插入图片描述

在这里插入图片描述
即可成功创建出一个空白项目
在这里插入图片描述

运行

按照下图设置一preview
在这里插入图片描述
然后点击播放键,选择一个设备和分辨率,我这里选的是手机。
在这里插入图片描述
即可在模拟器查看页面
在这里插入图片描述

修改页面

目录结构

现在页面也能运行了,下一步当然是想要尝试着修改他一下。首先看看项目目录结构。

我以前没有进行过安卓开发这个项目的目录结构十分陌生,我不打算一次性吃透。就这一次的修改页面而言,我着重理解了以下目录结构。
在这里插入图片描述
以下是官方给出的其它目录结构的意义:

  • AppScope > app.json5:应用的全局配置信息,详见app.json5配置文件。

  • entry:HarmonyOS工程模块,编译构建生成一个HAP包。

  • src > main > ets:用于存放ArkTS源码。

  • src > main > ets > entryability:应用/服务的入口。

  • src > main > ets > entrybackupability:应用提供扩展的备份恢复能力。

  • src > main > ets > pages:应用/服务包含的页面。

  • src > main > resources:用于存放应用/服务所用到的资源文件,如图形、多媒体、字符串、布局文件等。关于资源文件,详见资源分类与访问。

  • src > main > module.json5:模块配置文件。主要包含HAP包的配置信息、应用/服务在具体设备上的配置信息以及应用/服务的全局配置信息。具体的配置文件说明,详见module.json5配置文件。

  • build-profile.json5:当前的模块信息 、编译信息配置项,包括buildOption、targets配置等。

  • hvigorfile.ts:模块级编译构建任务脚本。

  • obfuscation-rules.txt:混淆规则文件。混淆开启后,在使用Release模式进行编译时,会对代码进行编译、混淆及压缩处理,保护代码资产。详见开启代码混淆。

  • oh-package.json5:用来描述包名、版本、入口文件(类型声明文件)和依赖项等信息。

  • oh_modules:用于存放三方库依赖信息。

  • build-profile.json5:工程级配置信息,包括签名signingConfigs、产品配置products等。其中products中可配置当前运行环境,默认为HarmonyOS。

  • hvigorfile.ts:工程级编译构建任务脚本。

  • oh-package.json5:主要用来描述全局配置,如:依赖覆盖(overrides)、依赖关系重写(overrideDependencyMap)和参数化配置(parameterFile)等。

修改index

参考官方教程修改index.ets代码如下,并添加了每一行的解析

// 导入页面路由模块
import { router } from '@kit.ArkUI';
// 导入业务错误处理模块
import { BusinessError } from '@kit.BasicServicesKit';@Entry
@Component
struct Index { // 定义一个名为 Index 的组件@State message: string = 'Hello World' // 定义一个状态变量 message,并初始化为 'Hello World'build() { // 构建页面结构Row() { // 使用 Row 布局组件Column() { // 在 Row 中使用 Column 布局组件Text(this.message) // 显示状态变量 message 的值.fontSize(50) // 设置字体大小为 50.fontWeight(FontWeight.Bold) // 设置字体粗细为粗体// 添加按钮,以响应用户点击Button() { // 定义一个按钮组件Text('Next') // 按钮上的文本为 'Next'.fontSize(30) // 设置按钮文本的字体大小为 30.fontWeight(FontWeight.Bold) // 设置按钮文本的字体粗细为粗体}.type(ButtonType.Capsule) // 设置按钮类型为胶囊型.margin({top: 20 // 设置按钮的上边距为 20}).backgroundColor('#0D9FFB') // 设置按钮的背景颜色为蓝色.width('40%') // 设置按钮的宽度为其父容器宽度的 40%.height('5%') // 设置按钮的高度为其父容器高度的 5%// 跳转按钮绑定 onClick 事件,点击时跳转到第二页.onClick(() => { // 定义按钮的点击事件console.info(`Succeeded in clicking the 'Next' button.`) // 在控制台输出点击成功的日志信息// 跳转到第二页router.pushUrl({ url: 'pages/Second' }).then(() => { // 调用 router 模块的 pushUrl 方法跳转到第二页console.info('Succeeded in jumping to the second page.') // 在控制台输出跳转成功的日志信息}).catch((err: BusinessError) => { // 捕捉跳转过程中的错误console.error(`Failed to jump to the second page. Code is ${err.code}, message is ${err.message}`) // 在控制台输出跳转失败的错误信息,包括错误代码和错误信息})})}.width('100%') // 设置 Column 的宽度为其父容器的 100%}.height('100%') // 设置 Row 的高度为其父容器的 100%}
}

区别和html+js+css的那一套差别很大,用的是声明式UI,并且有自己的一套ArkUI用来布局。已经可以预见后面逃不过相关的学习了,先放一个文档在这里:ArkUI文档

先不深入的学习,通过下面的图能够大概知道这段代码在干什么就行
在这里插入图片描述

添加第二个页面、以及路由

再接着添加第二个页面Second.ets,文件位置与Index.ets同级
在这里插入图片描述

// Second.ets
// 导入页面路由模块
import { router } from '@kit.ArkUI';
import { BusinessError } from '@kit.BasicServicesKit';@Entry
@Component
struct Second {@State message: string = 'Hi there'build() {Row() {Column() {Text(this.message).fontSize(50).fontWeight(FontWeight.Bold)Button() {Text('Back').fontSize(25).fontWeight(FontWeight.Bold)}.type(ButtonType.Capsule).margin({top: 20}).backgroundColor('#0D9FFB').width('40%').height('5%')// 返回按钮绑定onClick事件,点击按钮时返回到第一页.onClick(() => {console.info(`Succeeded in clicking the 'Back' button.`)try {// 返回第一页router.back()console.info('Succeeded in returning to the first page.')} catch (err) {let code = (err as BusinessError).code;let message = (err as BusinessError).message;console.error(`Failed to return to the first page. Code is ${code}, message is ${message}`)}})}.width('100%')}.height('100%')}
}

添加第二个页面后要记得添加路由,个人感觉操作类似于在小程序开发中的添加路由。
在这里插入图片描述
ok,重新跑一下,即可体验新的点击按钮,跳转页面的功能。
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/872102.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

探索Mojo编程语言:AI开发者的新宠儿

文章目录 探索Mojo编程语言:AI开发者的新宠儿一、Mojo编程语言概述什么是Mojo? 二、Mojo的安装与配置安装MojoWindowsmacOSLinux 配置Mojo 三、基本语法与数据类型标量变量数组哈希 四、控制结构条件语句循环语句 五、函数与模块函数模块 六、文件操作与…

macOS Sequoia 15(Macos15系统)v15.0 Beta 3发布 macOS Sequoia 15 功能预览

macOS Sequoia 15 功能预览 犀利一如 Mac macOS Sequoia 15(Macos15系统)v15.0 Beta 3测试版本下载安装 连续互通 你的 Mac 上,iPhone 用起来。 有了 iPhone 镜像功能,在 Mac 上就能看到 iPhone 屏幕画面,还能直接进行操控,不拿…

uniapp 实现上传文件的功能

上传单个文件 <script setup>const handleUploadClick () > {console.log("上传文件")uni.chooseImage({success: (chooseImageRes) > {const tempFilePaths chooseImageRes.tempFilePaths;console.log("用户选择的图片&#xff1a;", temp…

网络协同新纪元:Eureka引领分布式网络管理革命

网络协同新纪元&#xff1a;Eureka引领分布式网络管理革命 在微服务架构的浪潮中&#xff0c;服务的分布式网络管理成为了确保系统稳定性和可扩展性的关键。Eureka&#xff0c;作为Netflix开源的服务发现框架&#xff0c;提供了服务注册与发现的核心功能&#xff0c;为分布式网…

誉天教育与武汉晴川学院携手开展鸿蒙实训营,共筑鸿蒙生态新篇章!

在数字经济蓬勃发展的今天&#xff0c;鸿蒙系统作为华为自主研发的操作系统&#xff0c;正逐步构建起一个开放、协同、共赢的生态体系。为了进一步推动鸿蒙生态的繁荣发展&#xff0c;培养更多具备鸿蒙原生应用开发能力的专业人才&#xff0c;誉天教育与武汉晴川学院强强联合&a…

十九、【文本编辑器(五)】排版功能

目录 一、搭建框架 二、实现段落对齐 三、实现文本排序 一、搭建框架 (1) 在imgprocessor.h文件中添加private变量&#xff1a; QLabel *listLabel; //排序设置项QComboBox *listComboBox;QActionGroup *actGrp;QAction *leftAction;QAction *…

C#知识|SqlParameterCollection 只接受非空的 SqlParameter 类型对象,不接受 SqlParameter[] 对象

哈喽&#xff0c;你好啊&#xff0c;我是雷工&#xff01; 今天在练习C#时遇到报错&#xff1a; SqlParameterCollection 只接受非空的 SqlParameter 类型对象&#xff0c;不接受 SqlParameter[] 对象。 01 为什么使用SqlParameter 开发中之所以采用SqlParameter[]param是因为…

weblogic中间件运维常见问题

背景&#xff1a; 工作需要经常使用到weblogic中间件产品&#xff0c;在维护过程中有遇见的一些常见故障问题&#xff0c;这里分享给大家。 问题一&#xff1a;密码文件报错 问题描述&#xff1a; weblogic应用在启动过程中出现如下的报错内容&#xff1a; # tail -f nohup.ou…

五、 计算机网络(考点篇)试题

A、B、C都没问题&#xff0c;选D。现在基本上所有的互联网网站都是https了&#xff0c;电子支付类的更不用说了。 简单邮件传输的协议是SMTP(发)和POP3(收)&#xff0c;分别是25和110。选B和B 网络分片技术&#xff0c;分割切片嘛。 选C&#xff0c;AES加密等级比较高了&#x…

MFC程序创建word,创建表格,写入数据

文章目录 1、MFC程序功能&#xff1a;2、MFC程序实现2.1 创建项目2.2 添加word操作类2.3 添加word资源2.4 编写代码&#xff0c;实现将数据写入到word2.5 运行程序、验证功能3、工程代码下载 1、MFC程序功能&#xff1a; 创建word文档&#xff1b;向文档中写入字符串&#xff…

Jenkins用户权限管理指定操作任务

安装插件 在 Jenkins 的管理插件中进行插件安装。 搜索插件库&#xff1a;Role-based Authorization Strategy 修改授权策略 在全局安全配置中&#xff0c;把授权策略改为Role-Based Strategy 添加角色规则 在安全中选择Manage and Assign Roles 在Global roles中添加一个…

CentOS 7 中设置系统级代理

在 CentOS 7 中设置系统级代理需要几个步骤。以下是设置系统级代理的方法&#xff1a; 设置环境变量: 编辑 /etc/environment 文件&#xff1a; sudo nano /etc/environment添加以下行&#xff08;替换 proxy_server 和 port 为您的实际代理服务器地址和端口&#xff09;&am…

高效守护:在Eureka中构筑服务的分布式安全防线

高效守护&#xff1a;在Eureka中构筑服务的分布式安全防线 在微服务架构中&#xff0c;服务的安全性是保障整个系统稳定性和可靠性的基石。Eureka作为Netflix开源的服务发现框架&#xff0c;除了提供基本的服务注册与发现功能外&#xff0c;还能在服务的分布式安全策略中扮演重…

PyCharm 机器学习:打造高效数据可视化工作流

引言 在数据科学和机器学习领域&#xff0c;数据可视化不仅仅是美化报告的手段&#xff0c;它更是一种强大的沟通工具。通过图形&#xff0c;我们可以更快地发现数据模式、异常和趋势&#xff0c;使得洞察过程更为直接。PyCharm&#xff0c;凭借其丰富的集成特性和支持广泛的插…

Docker的虚拟化安装、常用命令和使用案例

文章目录 一、Docker的虚拟机安装1、完成虚拟机的更新2、完成Docker安装3、配置镜像加速器 二、Docker常用命令三、Docker的容器创建四、理解虚拟机中的Docker容器 一、Docker的虚拟机安装 1、完成虚拟机的更新 详见我的文章。 2、完成Docker安装 yum list installed|grep …

数据的力量:Facebook如何通过数据分析驱动创新

在当今数字化和信息化的时代&#xff0c;数据被认为是推动企业创新和发展的关键因素之一。作为全球最大的社交媒体平台&#xff0c;Facebook不仅积累了庞大的用户数据&#xff0c;还利用先进的数据分析技术&#xff0c;不断探索和实现新的创新。本文将深入探讨Facebook如何通过…

知识付费小程序源码 thinkphp后台 带3000多条教程数据

知识付费小程序源码 thinkphp后台 带3000多条教程数据,云码素材有进行了更新开发,更新了广告位管理,后台一键更新数据,用户登录 不单单是一个源码,我们对接了云码素材的教程资源,也就是说你可以免费拥有云码素材所有教程资源,后台一键更新,无须自己再更新资源,每天有我们更新,…

​iredmail邮件系统如何有效配置SMTP服务器?​

iredmail邮件系统安全性如何保障&#xff1f;怎么选择邮件系统&#xff1f; SMTP是发送邮件的标准协议&#xff0c;设置正确的SMTP服务器可以保证邮件能够顺利发送到接收者的收件箱中。AokSend将详细介绍在iredmail邮件系统中如何配置SMTP服务器&#xff0c;以确保您的邮件系统…

EPLAN 去掉PDF中的红色跳转标识

EPLAN PDF图纸导出后体验跳转标识会有红色标识&#xff0c;如何去掉呢&#xff1f;下面介绍一下方法&#xff1a; 此为现象&#xff1a; EPLAN 2.9的帮助文档里提示&#xff1a; 在导出的 PDF 文档中&#xff0c;跳转后的跳转目标现在通过红色的闪烁框进行标识。可能的跳转目…

RocketMQ控制台(rocketmq-dashboard/)

RocketMQ控制台的官网&#xff1a;RocketMQ控制台官网 页面往下拉 用户指导 https方式访问rocketmq-dashboard