ScrollView的滑动停止的判断,为了实现一些需求,有些功能是需要ScrollView停止的时候才能触发的,Google并没有明确的方法告诉我们什么什么ScrollView的滑动停止。一次偶然的机会在阅读ScrollView的源码的时候,找到了这个方法,不过却是申明成private类型的,下面直接上代码
/**
* @param scrollView
* @return true表示ScrollView已经停止滑动,否则正在滑动中
*/
public static boolean isScrollOver(ScrollView scrollView) {
try {
if (scrollView != null) {
Field mScroller = scrollView.getClass().getDeclaredField("mScroller");
mScroller.setAccessible(true);
Object object = mScroller.get(scrollView);
if (object instanceof OverScroller) {
OverScroller overScroller = (OverScroller) object;
return overScroller.isFinished();
}
}
} catch (NoSuchFieldException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
return false;
}
在ScrollView中判断滑动停止的是OverScroller这个类下面给出在源码中ScrollView的判断的方法
/**
*
* Returns whether the scroller has finished scrolling.
*
* @return True if the scroller has finished scrolling, false otherwise.
*/
public final boolean isFinished() {
return mScrollerX.mFinished && mScrollerY.mFinished;
}
以上为ScrollView的滑动判断停止的方式,如有不当的地方,欢迎指正,谢谢
最后编辑于 :2017.12.10 22:05:13
©著作权归作者所有,转载或内容合作请联系作者 平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。