Android使用最简单的方式实现ListView 拉出回弹效果,阻尼效果(一)
2017-06-21 09:22
726 查看
最简单的方式实现ListView 拉出回弹效果,阻尼效果
首先说一下坑简介
实现
首先说一下坑
Android 9 之后才新增的API.简介(overScrollBy方法,只要带滑动的都有此方法)
1. 在View中增加了overScrollBy方法,用于记录x, y 轴上滚动的距离 2. 在AbsListView的onTouchEvent中判断是否到达边界(顶部 或 底部) ,然后调用view.overScrollBy ,传入 mScrollY等参数 3. overScrollBy 最终赋值给View的mScrollX, mScrollY 两个变量 4. 在AbsListView中调用完overScrollBy之后,调用invalidate重绘
本编辑器支持 Markdown Extra , 扩展了很多好用的功能。具体请参考[Github][2].
实现(以ListView为例)
第一步:继承ListView,重写overScrollBy方法
说明:系统在此方法中没有做任何实现,只是实现了监听,自从5.0之后,Android官方加入了水泼纹效果,滑动到顶部或底部会出现水波纹效果。之所以没有做成和IOS下拉回弹那样的效果,是为了规避侵权。但是此方法其实已经做了实现。public class PullToListView extends ListView{ private int mMaxOverScrollY = 200;//默认200 public PullToListView(Context context) { super(context); } public PullToListView(Context context, AttributeSet attrs) { super(context, attrs); } public PullToListView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } /** * 设置最大的回弹距离 * @param maxOverScrollY */ public void setMaxOverScrollY(int maxOverScrollY){ this.mMaxOverScrollY = maxOverScrollY; } /** * * @param deltaX 继续滑动x方向的距离 * @param deltaY 继续滑动y方向的距离 负:表示顶部到头 正:表示底部到头 * @param scrollX x方向滑动的距离 * @param scrollY y方法滑动的距离 * @param scrollRangeX * @param scrollRangeY * @param maxOverScrollX x方向最大可以滚动的距离 * @param maxOverScrollY y方向最大可以滚动的距离 * @param isTouchEvent 是手指拖动滑动 false:表示fling靠惯性滑动; * @return */ @Override protected boolean overScrollBy(int deltaX, int deltaY, int scrollX, int scrollY, int scrollRangeX, int scrollRangeY, int maxOverScrollX, int maxOverScrollY, boolean isTouchEvent) { return super.overScrollBy(deltaX, deltaY, scrollX, scrollY, scrollRangeX, scrollRangeY, maxOverScrollX, mMaxOverScrollY, isTouchEvent); }
源码
代码实在是太简单了,就不上传了,详见下一篇,扩展篇相关文章推荐
- Android回弹阻尼效果的简单实现,非基于ListView,ScrollView
- Android 弹性ListView和ScrollView 简单优雅地实现回弹效果
- Android超简单实现listview上下拉伸回弹动画效果
- android 实现拉出回弹效果通过自定义ListView重写overScrollBy()
- Android 三种布局实现上下回弹效果(普通布局,ListView,ScrollView)
- Android 使用Scroller实现绚丽的ListView左右滑动删除Item效果
- Android 简单实现ListView顶部悬浮效果
- android游戏开发框架libgdx的使用(十八)—简单的AVG游戏效果实现
- Android 使用NineOldAndroids实现绚丽的ListView左右滑动删除Item效果
- Android 使用NineOldAndroids实现绚丽的ListView左右滑动删除Item效果
- Android 使用NineOldAndroids实现绚丽的ListView左右滑动删除Item效果
- Android 使用Scroller实现绚丽的ListView左右滑动删除Item效果
- Android 使用Scroller实现绚丽的ListView左右滑动删除Item效果
- Android 使用NineOldAndroids实现绚丽的ListView左右滑动删除Item效果
- Android 使用NineOldAndroids实现绚丽的ListView左右滑动删除Item效果
- Android 使用Scroller实现绚丽的ListView左右滑动删除Item效果
- Android 使用NineOldAndroids实现绚丽的ListView左右滑动删除Item效果
- Android 使用Scroller实现绚丽的ListView左右滑动删除Item效果
- Android 使用Scroller实现绚丽的ListView左右滑动删除Item效果
- Android 使用NineOldAndroids实现绚丽的ListView左右滑动删除Item效果