通过listview实现自定义TimePicker
转载请注明来源
代码连接
https://github.com/AndroidMsky/MyPickerView
欢迎加安卓开发交流群:308372687(博主尽可能帮助大家)
老规矩先上效果图:
看了这个效果图,大家不要疑惑,没错这就是我们常见的listview。次控件没用重写listview的代码,只不过通过一个adapter实现这种高级效果。下面看看具体的分析实现吧。
几个要点:
1.如何实现循环滚动的listview。
2.如何实现滑动动画。
3.如果实现多种不同大小的item。
1.如何实现循环滚动的listview。
思路:把原有的数据已3倍。映射到listview中。通过onScroll方法,不断将滑动的位置返回到中间。比如数据是12345。那么我们的listview数据就是123451234512345。如果我们到了第3个4的位置。那么就回到第2个4的位置。这样就实现了循环。如果数据量够大,我们用3倍,如果特别少那么就可以用5倍甚至7倍来优化滑动循环。
代码:
@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount