#打卡不停更#【木棉花】:运动记录Demo的自定义弹窗组件 原创 精华
前言
在参加了"HarmonyOS ArkUI入门训练营——健康生活实战"后,了解并学习了声明式UI开发框架及组件用法,本文是对笔者结营作品中的自定义弹窗组件作一个小分享。
概述
这是一个运动记录的应用,主要用于管理健康记录运动。可以添加运动信息,包括运动名称、运动时长,并自动计算消耗的卡路里,在记录页面可以查看所添加的运动记录。
自定义弹窗组件运行效果图如下:
正文
一、总体布局设置
从效果图来对弹窗内容作布局,顶部是两个按钮“取消”“确定”和一个弹窗标题,中部是运动项的数据(包括图片、名称、单位消耗的热量、时间的输入框及自动计算得出的总值),底部是一个简易输入器(0-9的输入及删除)。三部分是纵向排布,顶部是横向布局,底部的输入器使用了栅格布局。
自定义弹窗组件要用**@CustomDialog** 修饰,我将弹窗组件命名为Record,其基本布局代码框架如下:
二、子布局设置和点击事件的设置
由于运动数据项的数据在原demo中是根据点击的列表项,来传参显示相应的图片及名称,因此读者可以使用静态数据来调试此自定义弹窗组件。代码部分如下:
对于输入器部分,由于在“添加记录”时,“删除记录”按键无响应,于是定义变量mode,区分增加记录和修改记录。
接着定义4行3列的栅格布局,用ForEach循环渲染布局,根据按键类型定义相应的点击事件。若是字符串类型且长度为1的,则为输入(即字符串拼接),定义输入范围为0-999,每次点击都调用calculate(),这是计算总值的函数,并实时显示计算结果。若按键类型是图片,则实现回删的点击事件,同样也会调用calculate()。点击“删除记录”时,会弹窗确认。代码如下:
三、总体布局的点击事件及调用该自定义弹窗组件
1、确认按键的点击事件
因为涉及全局变量等其他组件的代码,因此笔者简单带过业务逻辑的实现。代码如下:
2、调用自定义弹窗组件
主要代码如下:
结语
以上就是本次的小分享啦!❀❀
这个如果再适配华为手环感觉会更上一层楼
学习下踩坑的点
界面好看
谢谢O(∩_∩)O