初探Harmony OS开发之旅:从待办列表到循环机制的摸索与实践 原创
产品示例
概要
第一次尝试用 Harmony OS 开发应用,选择待办列表切入,算是给自己开了个技术新篇章。从代码列表里看到@State双向管理的效果,真是挺神奇的。数据一变动,界面立马跟着更新,这种即时的反馈,让我这个编程老鸟也有点儿小激动。再加上那个ListItem组件,让待办事项看起来整齐划一,用户体验直线上升。
说实话,作为一款国产化的语言,Harmony OS的表现还是挺让我惊喜的。虽然我只是个新手,但已经能感受到它在细节上的用心。这List() To ListItem() 组件用起来简单方便,让我的待办列表瞬间颜值爆表,有种“国产骄傲”的感觉。
当然了,我这第一次尝试,也就是摸到了点皮毛。循环机制这种高级货,我目前还一窍不通。不过,谁让咱是技术人呢,对新知识的好奇心总是满满的。等我把这个待办列表项目完结,后面就是攻克循环机制了。毕竟,编程这事儿,学无止境,总得不断给自己找点挑战不是?
回过头来看,这次的开发经历,还是挺有收获的。从刚开始的摸索,到后来的渐入佳境,每一步都是自己一步步踩出来的。虽然过程中遇到了不少小问题,但解决起来也挺有成就感的。这就是编程的魅力吧,总是在解决问题的过程中,让人感受到成长的快乐。
嗯,这次就先聊到这儿吧。待办列表这个小项目,算是给我和Harmony OS的初次邂逅画上了一个圆满的句号。接下来,我得准备迎接新的挑战了。循环机制,你等着,我马上就来征服你!
说到底,技术这东西,就是一个不断学习、不断进步的过程。Harmony OS作为国产化的代表,给了我不少信心。我相信,在不久的将来,我们国家的技术会越来越强大,而我们这些技术人,也会在这个过程中,不断成长,成为推动社会进步的重要力量。
最后,给自己加个油,也给所有正在学习Harmony OS的朋友们加个油。咱们一起努力,共同探索这个充满无限可能的技术世界。别忘了,每一次尝试,都是向未来迈出的一步。咱们,可都是时代的弄潮儿啊!哈哈,不说了,继续搬砖去了!
代码示例
初始化数据结构
@State isSelect: boolean[] = [true, false, false, false]
@State listTitle: string[] = ["早市吃胡辣汤", "中午素菜沙拉", "傍晚烧烤摊", "夜宵麻辣烫",]
UI代码
Column({ space: 10 }) {
Column() {
Text('待办清单')
Text(this.isSelect.filter(n =>!n).length + '条待办')
.fontSize(12)
.fontColor(Color.Gray)
}
.width('100%')
.alignItems(HorizontalAlign.Start)
// 待办事项
List({ space: 10 }) {
if (!this.isSelect[0]) {
ListItem() {
Row() {
Checkbox().select(this.isSelect[0])
Text(this.listTitle[0])
}
.width('100%')
}
.onClick(() => {
this.isSelect[0] = !this.isSelect[0]
})
.padding(10)
.backgroundColor('#ffd0f2ff')
.borderRadius(10)
}
if (!this.isSelect[1])
ListItem() {
Row() {
Checkbox().select(this.isSelect[1])
Text(this.listTitle[1])
}
.width('100%')
}
.onClick(() => {
this.isSelect[1] = !this.isSelect[1]
})
.backgroundColor('#ffcde281')
.padding(10)
.borderRadius(10)
if (!this.isSelect[2])
ListItem() {
Row() {
Checkbox().select(this.isSelect[2])
Text(this.listTitle[2])
}
.width('100%')
}
.onClick(() => {
this.isSelect[2] = !this.isSelect[2]
})
.backgroundColor('#fff1b594')
.padding(10)
.borderRadius(10)
if (!this.isSelect[3])
ListItem() {
Row() {
Checkbox().select(this.isSelect[3])
Text(this.listTitle[3])
}
.width('100%')
}
.onClick(() => {
this.isSelect[3] = !this.isSelect[3]
})
.backgroundColor('#ff8ad0ff')
.padding(10)
.borderRadius(10)
}
Row()
.width('100%')
.height(1)
.borderWidth(0.25)
.margin(10)
Column() {
Text('已办清单')
Text(this.isSelect.filter(n => n).length + '条已办')
.fontSize(12)
.fontColor(Color.Gray)
}
.width('100%')
.alignItems(HorizontalAlign.Start)
// 已办事项
List({ space: 10 }) {
if (this.isSelect[0]) {
ListItem() {
Row() {
Checkbox().select(this.isSelect[0])
Text(this.listTitle[0])
}
.width('100%')
}
.onClick(() => {
this.isSelect[0] = !this.isSelect[0]
})
.padding(10)
.backgroundColor(Color.Gray)
.borderRadius(10)
}
if (this.isSelect[1])
ListItem() {
Row() {
Checkbox().select(this.isSelect[1])
Text(this.listTitle[1])
}
.width('100%')
}
.onClick(() => {
this.isSelect[1] = !this.isSelect[1]
})
.backgroundColor(Color.Gray)
.padding(10)
.borderRadius(10)
if (this.isSelect[2])
ListItem() {
Row() {
Checkbox().select(this.isSelect[2])
Text(this.listTitle[2])
}
.width('100%')
}
.onClick(() => {
this.isSelect[2] = !this.isSelect[2]
})
.backgroundColor(Color.Gray)
.padding(10)
.borderRadius(10)
if (this.isSelect[3])
ListItem() {
Row() {
Checkbox().select(this.isSelect[3])
Text(this.listTitle[3])
}
.width('100%')
}
.onClick(() => {
this.isSelect[3] = !this.isSelect[3]
})
.backgroundColor(Color.Gray)
.padding(10)
.borderRadius(10)
}
}
.height('100%')
.width('100%')
.padding(10)