写点什么

鸿蒙开发:课程表应用开发实践

作者:chengxujianke
  • 2025-05-22
    广东
  • 本文字数:951 字

    阅读完需:约 3 分钟

最近在尝试用 ArkUI 方舟开发框架开发一个简单的课程表应用,适配 HarmonyOS NEXT 系统(API12)。记录下主要实现思路和关键代码片段。数据结构设计首先定义课程数据模型:typescript


class CourseItem {id: numbername: stringteacher: stringclassroom: stringday: number // 星期几 section: number // 第几节课


constructor(id: number, name: string, teacher: string,classroom: string, day: number, section: number) {this.id = idthis.name = namethis.teacher = teacherthis.classroom = classroomthis.day = daythis.section = section}}


主界面实现使用 Grid 容器实现课程表格布局:typescript


@Entry@Componentstruct SchedulePage {private courses: CourseItem[] = [new CourseItem(1, "数学", "张老师", "A201", 1, 1),new CourseItem(2, "英语", "李老师", "B305", 1, 3),// 其他课程数据...]


build() {Column() {// 星期标题行 Row() {ForEach(["周一","周二","周三","周四","周五"], (day) => {Text(day).width('20%').textAlign(TextAlign.Center)})}.width('100%').height(40)


  // 课程内容表格  Grid() {    ForEach(this.courses, (course: CourseItem) => {      GridItem() {        Column() {          Text(course.name)            .fontSize(16)          Text(course.teacher)            .fontSize(12)          Text(course.classroom)            .fontSize(12)        }        .padding(8)        .width('100%')        .backgroundColor('#f5f5f5')        .borderRadius(8)      }      .rowStart(course.section)      .rowEnd(course.section)      .columnStart(course.day)      .columnEnd(course.day)    })  }  .columnsTemplate('1fr 1fr 1fr 1fr 1fr')  .rowsTemplate('1fr 1fr 1fr 1fr 1fr 1fr')  .width('100%')  .height('80%')}.padding(10)
复制代码


}}


开发注意事项 1.使用 Grid 布局时要注意行列索引从 0 开始 2.课程卡片建议使用固定高度,避免内容溢出 3.HarmonyOS NEXT 的 ArkUI 对 Grid 容器的性能优化很好,即使课程较多也能流畅滚动目前这个基础版本已经实现了课程展示功能,下一步计划添加课程编辑和提醒功能。ArkUI 方舟开发框架的声明式语法确实让这类表格类应用的开发效率提高不少。

用户头像

chengxujianke

关注

还未添加个人签名 2025-03-07 加入

还未添加个人简介

评论

发布
暂无评论
鸿蒙开发:课程表应用开发实践_chengxujianke_InfoQ写作社区