因为需求需要做一个想 酷狗 那样的拖拉效果, 开始以为是 几个activity通过某种方式实现的, 自己一直没有头绪。
后面不想找到了 一个demo, 果断下载,并且 关注了博主。
下载地址: (还有几个 扩展的demo, 就不贴了)
http://download.csdn.net/detail/jj120522/4670568
博主的blog
http://my.csdn.net/jj120522
-----------------------------------
简单修改,让demo更简单点,
首先, 理解 GestureDetector.OnGestureListener 【里面有6个监听, 让长按无效后, 还有5个。】
在 activity的 boolean onTouch(View v, MotionEvent event) { 中 ,return mGestureDetector.onTouchEvent(event);
也就是 每次return之前, 先 调用 mGestureDetector.onTouchEvent(event); 再return对应的boolean
【博主demo中的 onTouch , 有 如果没有拉到一半, 就弹回去, 如果超过一半, 就自动拉到头 (用的异步执行,在异步的线程每5毫秒)
分几次移动, 次数 = 总宽数/ 速度 (如果不整除就+1)】
--拖动以后:
在 onScroll 里面, 每次拉动多少 (distanceX:向左为正,右为负),
leftMargin 就 -=多少 layoutParams.leftMargin -= mScrollX;
直到在范围内位置
通过isScrolling来控制, 是否在拖动
在 重写的 onSingleTapUp(MotionEvent e) { 方法中, 来控制 单击事件的自动滑动。
--------------以后继续