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)
在结束这段关于Harmony OS应用开发的讨论时,我想表达的是,技术的发展是一个连续的过程,每一步都构建在前一步的基础上。通过这次构建待办事项列表应用的经历,我们不仅掌握了Harmony OS的入门知识,也体会到了编程的挑战与乐趣。这仅仅是一个开始,技术的世界中总有新知识和技能等待我们去学习。
作为硬件工程师,我们通常专注于实体组件和电路设计,而软件领域则提供了一个全新的视角来解决问题。这次实践让我们得以体验软件开发的过程,感受在数字世界中创造的满足感。这种跨学科的实践不仅扩展了我们的视野,也增强了我们综合解决问题的能力。
展望未来,我们将继续深化对Harmony OS的理解,学习更多编程技巧,包括循环机制等高级功能。我们将不断挑战自我,解决更复杂的问题,为用户提供更优质的体验。同时,我们也希望Harmony OS能够持续进化,成为技术进步的一个关键驱动力。
最后,我想对所有在技术道路上不断前行的同行说,无论我们身处哪个技术领域,保持对新知识的渴望和学习的热情是至关重要的。让我们共同努力,迎接技术带来的新机遇。每一次实践,都是我们向未来迈进的一步。继续前进,未来属于那些勇于尝试和不断学习的人。