-
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的滑动判断停止的方式,如有不当的地方,欢迎指正,谢谢