- 默认水波纹实现方式
android:background="?android:attr/selectableItemBackground"
/**
* 检测一个 View 在给定的方向(up or down)能否竖直滑动
*
* @param 调用该方法的 view
* @param 负数表示检测上滑,正数表示下滑
* 返回 true 表示能在指定的方向滑动,false 反之
*/
public static boolean canScrollVertically(View v, int direction) {
return IMPL.canScrollVertically(v, direction);
}
作者:HelloVass
链接:https://www.jianshu.com/p/3f4490132306
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
direction参数为要判断的方向:
小于0:是否可以向下拉(对应向上滚)
大于等于0:是否可以向上拉(对应向下滚)
可以看到前面要判断的是是否可以继续下拉,所以传入的是一个负值-1。
这里有3个计算方法(PS:后面简称3大法),经我研究发现它们的含义分别为(如有错误,欢迎指正):
(1)computeVerticalScrollOffset():
已经向下滚动的距离,为0时表示已处于顶部。
(2)computeVerticalScrollRange():
整体的高度,注意是整体,包括在显示区域之外的。
(3)computeVerticalScrollExtent():
显示区域的高度。
网友评论