前言
在平时开发中会用到NumberPicker组件,但是默认风格的NumberPicker具有一些不灵活的属性,且定制起来比较麻烦,且缺少一些过渡动效,因此在应用开发时,一般采用自定义的控件来完成选择功能。
控件截图
截屏有些问题,使得看上去有点卡顿且divider颜色不一致,实际效果很流畅。
项目地址:
说明
NumberPickerView是一款与android原生NumberPicker具有类似界面以及类似功能的View。主要功能同样是从多个候选项中通过上下滚动的方式选择需要的选项,但是与NumberPicker相比较,有几个主要不同点,下面是两者的不同之处。
1.原始控件特性-NumberPicker
显示窗口只能显示3个备选选项;
在fling时阻力较大,无法快速滑动;
在选中与非选中状态切换比较生硬;
批量改变选项中的内容时,没有动画效果;
动态设置wrap模式时(setWrapSelectorWheel()方法),会有“暂时显示不出部分选项”的问题;
选中位置没有文字说明;
代码中不能控制选项滑动滚动到某一item;
2.自定义控件特性-NumberPickerView
显示窗口可以显示多个备选选项;
fling时滑动速度较快,且可以设置摩擦力;
在选中与非选中的状态滑动时,具有渐变的动画效果,包括文字放大缩小以及颜色的渐变;
在批量改变选项中的内容时,可以选择是否采用友好的滑动效果;
可以动态的设置是否wrap,即,是否循环滚动;
选中位置可以添加文字说明,可控制文字字体大小颜色等;
具有在代码中动态的滑动到某一位置的功能;
支持wrap_content,支持item的padding;
提供多种属性,优化UI效果;
在滑动过