1.重写OnTouchEvent
ACTION_DOWN:获取Y初值
ACTION_MOVE:计算Y坐标移动距离,判断当前置顶状态(0==getFirstVisiblePosition())且(Y距离大于0或顶部header已经下滑)
if(0==getFirstVisiblePosition()&&(deltY>0||mContainerFl.getHeight()>0))
根据下拉距离超过header默认高度判断是否可以刷新及箭头方向(animation旋转180度动画),设置初始状态或Ready状态
通过setLayoutParams方法设置header高度
setSelection(0)保证下拉正常(异常:下拉后回不去)
ACTION_UP:抬手判断是否Ready,是则调用弹性滑动到header高度-在完成刷新后调用弹性滑动隐藏header,否则调用弹性滑动隐藏header
弹性滑动:Scroller弹性滑动 - 简书
项目Github:androidNote/pullloadmore at master · orangesunshine/androidNote · GitHub
网友评论