
【HM】自定义组件——时间选择器(上下午、时分) 原创
运行效果:
一、组件拆解
面向对象编程,蓝、绿、黄都是时间选择对象,可抽象定义为一个类;但每个对象又有各自的特点,蓝色是午时、绿色是12小时制、黄色是分,这些可以通过对象的属性区分。所以,可以给这个对象类定义三个属性:时间类型、当前选择的值和选项数据。
二、时间选择对象类
新建目录viewmodel,存放数据实体对象。右击目录viewmodel >> 新建 >> ArkTS File,文件命名为DayDataItem。
DayDataItem.ets就是时间选择对象类,并定义三个属性,代码如下:
三、定义时间选择项数据常量
新建一个类文件,是任务页面所用的常量对象。右击目录constants >> 新建 >> ArkTS File,文件命名为DetailConstant。
定义一个时间常量数组DAY_DATA,数组项就是DayDataItem对象,包括上述的三类时间:上下午、小时和分钟。代码如下:
四、时间选择器组件
新建组件文件,右击目录component >> 新建 >> ArkTS File,文件命名为DateSelector。
组件采用层叠布局Stack,在Row行容器内包括TextPicker文本选择器组件,通过遍历常量数组DAY_DATA,每个数组项是一个TextPicker,从左到右分别是上下午、时和分。DateSelector.ets代码如下:
资源文件float.json增加了name项:
关于层叠布局Stack,请参考官方文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/arkts-layout-development-stack-layout-0000001860295781
关于滑动选择文本内容组件TextPicker,请参考官方文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-basic-components-textpicker-0000001815927604
