如何获取 RecyclerView 的滑动距离

 我来答
仇叔扒电影
2016-05-12 · 影视领域创作者
个人认证用户
仇叔扒电影
采纳数:382 获赞数:2169

向TA提问 私信TA
展开全部

  获取 RecyclerView 的滑动距离的方法

  switch (action) {

 局轮枣 case MotionEvent.ACTION_DOWN:

  DownX = event.getX();//float DownX

  DownY = event.getY();//float DownY

  currentMS = System.currentTimeMillis();//long currentMS     获取系统时间

  break;

  case MotionEvent.ACTION_MOVE:

  float moveX = event.getX() - DownX;//X轴距离

  float moveY = event.getY() - DownY;//y轴距离

  long moveTime = System.currentTimeMillis() - currentMS搜索;//移动时间

  break;

  case MotionEvent.ACTION_UP:

  break;

  }

  以上来自百度,不明的桐拆话,看下面原理自己做个:

  1. 滑动其实只是不停的重绘图像,造成滑动的效果。

  2. 滑动其实是处理手的触屏事件,在你的View里有onTouch事件,里面会有MotionEvent对象,里面保存当前手的位置坐标,你根据这个坐标计算手滑动的距离,

  3. 一般是在收到ACTION_DOWN时保存按下桐好的位置,然后ACTION_MOVE会不停的上报,

  4. 计算得出滑动距离。

名侦探六花
2016-05-04
知道答主
回答量:43
采纳率:0%
帮助的人:3.6万
展开全部
我找了一些资料给你

switch (action) {
case MotionEvent.ACTION_DOWN:
DownX = event.getX();//float DownX
DownY = event.getY();//float DownY
currentMS = System.currentTimeMillis();//long currentMS 获取系统时间
break;
case MotionEvent.ACTION_MOVE:
float moveX = event.getX() - DownX;//X轴距离
float moveY = event.getY() - DownY;//y轴距离
long moveTime = System.currentTimeMillis() - currentMS搜索;//移动时间
break;
case MotionEvent.ACTION_UP:
break;
}
http://zhidao.baidu.com/link?url=N-oYpb1GOeGx7bBOZv6AIgiN7W6Zl9AIDbSdXN7fFHedszEzZZuvco_kQXMpucufPS98fQmpENRBWbsODVdcxq
以上来自百度,不明的话,看下面原理自己做个:
滑动其实只是不停的重绘图像,造成滑动的效果。
滑动其实是处理山携郑手的触屏事件,在你的View里有onTouch事件,隐咐里面会有
MotionEvent对象,里面保存当前手的位置坐标,你根据这个坐标计算手滑动的距离,
一般是在收到ACTION_DOWN时保存按下的位置,然后ACTION_MOVE会不停的上报,
计算得出滑动距离

通过layoutmanager的findviewbyposition查找firstvisibleview和lastvisibleview之后取到left和right之后计算下就得出来了。
注意不要用getchild取view,一定要用layoutmanager的findviewbyposition取!!!
手机写答逗颂案太不方便了

推荐链接:

http://www.zhihu.com/question/31270461/answer/79625236
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
anning2210
2016-04-23
知道答主
回答量:4
采纳率:0%
帮助的人:4380
展开全部
switch (action) {
case MotionEvent.ACTION_DOWN:
DownX = event.getX();//float DownX
DownY = event.getY();//float DownY
currentMS = System.currentTimeMillis();//long currentMS 获取系统时间
break;
case MotionEvent.ACTION_MOVE:
float moveX = event.getX() - DownX;//X轴距离
float moveY = event.getY() - DownY;//y轴距离
long moveTime = System.currentTimeMillis() - currentMS搜索;//移动时间
break;
case MotionEvent.ACTION_UP:
break;
}

以上来自晌并百度,不颤迹明的话,看下面原理自己做个:
滑动其实只是不停的重绘图像,造成滑动的效果。
滑动其实是处理手的触屏事件,在你的View里有onTouch事件,里面会茄谨并有
MotionEvent对象,里面保存当前手的位置坐标,你根据这个坐标计算手滑动的距离,
一般是在收到ACTION_DOWN时保存按下的位置,然后ACTION_MOVE会不停的上报,
计算得出滑动距离
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式