承接上文,我们第一个项目已经成功的搭建了,我们看到了,经典的Hello World出现在了鸿蒙系统的手机里。本文将开始进行更加深入的了解HarmonyOS的开发技术。不了解如何创建工程的小伙伴可以看:鸿蒙HarmonyOS第一个项目Hello World
我们先看下完成后整体的样子:
目前只是模拟数据,将来可以添加、删除。慢慢来,让我们一步一步的掌握。接下来,我们开始吧。
修改Hello World项目,构建基础页面
将Hello World项目中的Index.ets文件中build函数里的内容删除,换成:
/** * 页面入口,页面组件 */ @Entry @Compone联通大流量卡nt struct Index { build() { Column() { Text(待办事项) .fontSize(28fp) .lineHeight(33vp) .fontWeight(FontWeight.Bold) .width(80%) .margin({ top: 24vp, bottom: 12vp }) .textAlign(TextAlign.Start) Divider() } .width(100%) .height(100%) .backgroundColor(#F1F3F5) } }运行一下,看看显示:
出现了标题,但是没有待办事项的内容,接下来联通大流量卡,我们创建一个自定义组件,用来描述待办事项的Item。在Index.ets文件中,在最下面,添加:
/** * 自定义TodoItem组件 */ @Component struct ToDoItem { build() { } }整体截图:
构建事项记录
目前所有组件在一个文件中,将来,我们可以拆分成多个模块,多个文件中,不着急,一步一步来。每个ToDoItem都是一条记录,每个记录都包含了一个状态、事项标题:
该组件中应有:
点击标题,则表示完成待办,再点击则表示未完成。事项标题应该是外面传进来的值。因此,我们加一个布尔变量,用来标记状态,一个标题变量联通大流量卡,用来显示内容。再看布局,每个事项,都是一个行布局,都在一个行里,因此build函数中的布局是Row,Row里是一个图标,一个标题文本。
运行后的结果
代码中,我们可以看到,content写死了,而且Index组件中,只写了一个ToDoItem,页面中出现了一条事项。效果出来了,但我们需要的是多个事项,并且事项可以点击。
多条事项记录
从组件的角度出发,事项的结构是相同的,不同的只是组件内部的数据,因此可以使用循环,将Index组件中的ToDoItem循环输出,正好arkTS为我们准备了默认的循环组件: ForEach。
我们创建一个事项任务数组,里面都是事联通大流量卡项标题。并在UI中,声明了一个ForEach组件,回调函数中,加入了自定义的组件ToDoItem。运行看下效果
非常好,效果出来了
将标题带入组件中,并添加点击事件,改变状态
目前还没有把定义的标题,带入到组件中,我们在自定义组件中,去掉写死的内容,并在Index中,加入内容的值,运行:
现在外部的数据可以进入自定义的组件中了,已经可以正确的显示出来了。就差点击事件了!在ToDoItem组件中,添加点击事件,事件回调很简单,就是改变状态,取反。
接下来,我们需要根据状态,修改:
状态图标的样式;文字背景色、透明度、横线;我们对图片的UI进行调整,增加状态判断:
对文字进行判断:
运行一下,看看结果:
非常好,点联通大流量卡击事件也出来了。接近完成了,最后我们再修改下行间距,让它看起来更好看一点。
至此,我们的待办事项的模拟数据就完成了,接下来,我们逐渐丰富功能,让它更实用,更好用。若想更深入的了解鸿蒙HarmonyOS的开发,欢迎订阅我的个人专栏:
原创不容易,鉴于本人水平有限,文中如有错误之处欢迎大家指正。欢迎大家点个关注,我将继续为大家分享相关的技术内容。
友情提醒: 请添加客服微信进行免费领取流量卡!
QQ交流群:226333560 站长微信:qgzmt2
原创文章,作者:sunyaqun,如若转载,请注明出处:https://www.dallk.cn/54476.html