94 Star 364 Fork 200

HarmonyOS-Cases / Cases

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
README.md 2.18 KB
一键复制 编辑 原始数据 按行查看 历史
give-me-five 提交于 2024-04-07 11:40 . 规范代码格式

列表编辑实现

介绍

该场景多用于待办事项管理、文件管理、备忘录的记录管理等。

效果图预览

使用说明

  • 点击添加按钮,选择需要添加的待办事项。
  • 点击左侧checkbox按钮,待办事项状态变更为已完成。
  • 左滑单个待办事项,点击删除按钮后,当前待办事项被删除。

实现思路

  1. List组件绑定@State修饰的数组变量toDoData。
@State toDoData: ToDo[] = []; // 待办事项

List({ initialIndex: 0, space: STYLE_CONFIG.LIST_ITEM_GUTTER }) {
   ForEach(this.toDoData, (toDoItem: ToDo, index: number) => {
      ...
   })
}
  1. ListItem组件设置左滑动效swipeAction 属性,使得单个ListItem可以进行左右滑动,并显示自定义的UIBuilder。
@Builder
itemEnd(item: ToDo) {
   ...
}

ListItem(){
    ...
}
.swipeAction({ end: this.itemEnd(toDoItem), edgeEffect: SwipeEdgeEffect.Spring }) // 设置item左滑显示视图

属性。 3. 新增/删除列表项,更新数组变量toDoData,并同时更新List组件UI(MVVM),具体可参考代码文件ToDoList

高性能知识点

不涉及

工程结构&模块类型

pendingitems                                    // har
|---model
|   |---ToDo.ets                                // TODO类定义
|   |---ConstData.ets                           // 常量数据
|---pages
|   |---ToDoList.ets                            // 列表项功能增删实现页面
|   |---ToDoListItem.ets                        // 列表项页面

模块依赖

当前场景依赖以下模块

  1. 动态路由模块,主要用于注册模块路由。

参考资料

ListItem

JavaScript
1
https://gitee.com/harmonyos-cases/cases.git
git@gitee.com:harmonyos-cases/cases.git
harmonyos-cases
cases
Cases
master

搜索帮助