Harmony OS:界面设计与实时反馈的实践探索 原创

墨鸿先锋
发布于 2024-11-14 18:18
浏览
0收藏

效果展示

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能够持续进化,成为技术进步的一个关键驱动力。

最后,我想对所有在技术道路上不断前行的同行说,无论我们身处哪个技术领域,保持对新知识的渴望和学习的热情是至关重要的。让我们共同努力,迎接技术带来的新机遇。每一次实践,都是我们向未来迈进的一步。继续前进,未来属于那些勇于尝试和不断学习的人。

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
分类
标签
已于2024-11-14 20:39:40修改
收藏
回复
举报
回复
    相关推荐