新版刷新/加载RecyclerView-完全的新思路
介绍:全新的解决思路,有助于学习RecycelrView原理,扩展性强,简单方便适应各种LayoutManager
功能:
1.基本的刷新/加载
2.刷新/加载取消操作
3.可支持数据高度小于屏幕高度的操作
4.支持比例因子调控,可控制滑动间隔或者是滑动缩放效果
5.等待新的思路加入
问题记录:
* Q1-1为什么当布局高度设置为小于-2的时候也会产生包裹内容的高度效果?(等待源码校验)
* Q1-2为什么当已经展开的页面,再次滑动时候会产生一个快速收缩的不良效果。
经过测试发现:有时候如果快速滑动屏幕,那么事件其实是不会执行DOWN的,所以产生了很大的抖动现象
* Q1-3为什么向上滑动会出现突然间的扩大到原本的高度或者是最大高度。
原因:向上滑动的时候,如果高度设置为-1 match_parent -2 wrap_content 就导致了布局产生的不规则的变化 另外如果对高度小于-2也会造成包裹高度
* Q1-4为什么向上滑动时候不能真正的做到高度为0.
原因:滑动时的位置时根据定时监测的,所以如果滑动速度过快就会导致差分特别的大,以至于本应该高度为0却不能真正 的达到0而会产生0范围进行抖动的现象。
* Q1-5为什么突然的滑动会产生明显的卡顿现象,虽然不影响使用效果。
由于移动事件时根据时间间隔进行统计的,所以同一个事件如果产生了很大的位移,就会导致很明显的扩张,因此,
使用比例因子进行位移计算当然并不是最合适的解决方
案,而是通过段时间内的位移使用不同的比例因子
* Q1-6为什么关闭状态下直接进行上拉,然后抬起,再次进行刷新动作无法触发
原因:在提起的时候如果进行了延迟操作,这个时候再次触发是不能进行滑动操作的。 解决方案:屏蔽高度为0的向上滑动操作,
* Q1-7为什么上拉加载更多的时候会出现突然的扩大?
原因:因为底部视图默认添加的时候本身高度就是为-2(内容包裹),所以导致了得到的高度也是-2那就就会产生-2 -1 0 的情况,
也就是突然的扩大和缩小,所以准备的应该是获取到测量的高度。
* Q1-8为什么快速向上滑动底部/刷新到顶部会出现正在展开的状态而不会走刷新/加载?
原因:对于展开的状态返回数字,如果是动态扩展的状态就需要回调,对于高度不变的状态直接返回大于1。
true