
回复
开发者对于Picker这块常常会有一个误区,在使用Picker这块弹窗的时候优先会使用封装好的PikcerDialog类组件;但是需要注意的是,PikcerDialog类的组件是和系统颜色保持一致的,并不支持自定义;当需要自定义Picker弹窗时,优先考虑自行封装。所以,开发者使用Picker弹窗的时候优先考虑自己使用Picker类组件自行封装。
主要方案就是使用全局自定义弹窗PromptAction.openCustomDialog封装TextPicker组件,然后达成像TextPickerDialog同样的功能,拥有更灵活的自定义能力。
效果说明:此处的场景是一个日历选择弹窗,实现了一个类考勤打卡的demo。
参考场景1方案。此处的picker弹窗也是基于全局自定义弹窗进行封装的,只是不同上面的自定义TextPickerDialog,calendar没有选择使用官方的calendarPicker组件,而是使用三方库直接封装好的,以下demo是参考三方库@ohmos/calendar实现;当然,开发者也可以自行到三方库中搜寻日历相关关键字,然后挑选适合自己需求的三方库。
效果说明:文档当中只有最多3列的TextPicker,此处是4列的TextPicker。
如下代码所示,传入几列的数据,TextPicker就会渲染出几列的数据;且TextPicker中的range是支持二维数组的。