自定义时间选择器的实现(非picker)
2016-03-21 13:58
267 查看
上手的第一个比较完整的项目,其中有个时间选择器,想了阵子,尝试了不少方法,最后都放弃了,还是使用的一个相对笨的办法,我只能告慰自己,功能至少完全实现了。
关于时间选择器的滚轮,我选择用scrollview实现,务必关闭pageenable,我们通过使用scrollview的代理来实现必要时的pageenable功能。
scrollview中有两个代理方式需要使用,一个是bool是否有减速都会触发,一个则是滑动结束触发,第一个方法是无论是否有长滑动(手指离开后依然希望继续滑动)与否都会触发,后者是长滑动后触发,我们使用第一个代理进行bool判断,否,触发a事件,是,结束。
第二个方法我们同样触发a事件,通过这些处理,我们就保证了结束滑动无论是否是长滑动都会触发a事件。
关于之前提到的a事件,我们在其中实现最后的校准实现,避免结果停在两个数值之间,我自己是使用偏移量来实现的,当位移超过单位字的半个高度就将结果定位在下一个结果,否则着不,通过自定义动画实现setcontentoffset,将他退回或前进到合适位置。
关于次我有个问题不是完美解决,当同时滚动两个scrollview时,代理方法只能处理其一,导致有一个到达合适位置,另一个则无法到达。我退而求其次强制只能同时使用其一来刻意规避这一缺陷。
第一次文章,见笑了,十分感谢赵红情女士,orz。
关于时间选择器的滚轮,我选择用scrollview实现,务必关闭pageenable,我们通过使用scrollview的代理来实现必要时的pageenable功能。
scrollview中有两个代理方式需要使用,一个是bool是否有减速都会触发,一个则是滑动结束触发,第一个方法是无论是否有长滑动(手指离开后依然希望继续滑动)与否都会触发,后者是长滑动后触发,我们使用第一个代理进行bool判断,否,触发a事件,是,结束。
第二个方法我们同样触发a事件,通过这些处理,我们就保证了结束滑动无论是否是长滑动都会触发a事件。
关于之前提到的a事件,我们在其中实现最后的校准实现,避免结果停在两个数值之间,我自己是使用偏移量来实现的,当位移超过单位字的半个高度就将结果定位在下一个结果,否则着不,通过自定义动画实现setcontentoffset,将他退回或前进到合适位置。
关于次我有个问题不是完美解决,当同时滚动两个scrollview时,代理方法只能处理其一,导致有一个到达合适位置,另一个则无法到达。我退而求其次强制只能同时使用其一来刻意规避这一缺陷。
第一次文章,见笑了,十分感谢赵红情女士,orz。
相关文章推荐
- Hadoop2.7.2的部署
- Java开发工具中Compile、Make和Build的区别
- [BZOJ3083]遥远的国度(链剖+dfs序)
- Java开发工具中Compile、Make和Build的区别
- MySQL中的共享锁与排他锁
- 串口控制小夜灯
- LVS之VS/DR搭建web集群实战!!!
- /sys/block/xxx/queue/中的max_hw_sectors_kb 和 max_sectors_kb
- Device Tree(三):代码分析
- iOS中的滤镜
- 快速掌握Lua 5.3 —— 扩展你的程序 (2)
- 魔鬼牧师游戏--简单工厂的改进
- 自定义布局
- halcon小例:ORC识别
- 怎么实现EDIUS中添加的图片素材一样大
- MySQL中的行级锁,表级锁,页级锁
- wampserver3.0 图标为黄色解决
- 欢迎使用CSDN-markdown编辑器
- Java-网络编程
- mysql索引原理及慢查询优化