美文网首页
Android停止(结束)惯性滚动

Android停止(结束)惯性滚动

作者: 周_0717 | 来源:发表于2020-02-17 18:00 被阅读0次

            场景:当页面滚动超过一定距离后,显示回到顶部的按钮,点击按钮平滑滚动回顶部。

            实现:监听页面滚动距离,与一特定值比较,控制按钮显示隐藏,点击按钮点用页面平滑滚动Api或者通过自定动画实现滚动。

            存在问题:惯性滚动在页面返回顶部后并未结束,导致继续滚行下滑,使得页面无法停留在置顶状态。

            解决方法:未找到有效的自带Api实现停止惯性滚动,所以考虑使用模拟点击的方式停止页面滚动。

            1、使用MotionEventobtain(long downTime, long eventTime, int action,float x, float y, int metaState)方法创建一个页面内的MotionEvent.ACTION_DOWN事件,调用页面视图的dispatchTouchEvent(MotionEvent ev)传递事件

            2、使用MotionEventobtain(long downTime, long eventTime, int action,float x, float y, int metaState)方法创建一个页面内的MotionEvent.ACTION_CANCEL事件,调用页面视图的dispatchTouchEvent(MotionEvent ev)传递事件

    下图为kotlin实现代码:

    相关文章

      网友评论

          本文标题:Android停止(结束)惯性滚动

          本文链接:https://www.haomeiwen.com/subject/rzcifhtx.html