简单直接:判断是否可以竖向滑动,横向的暂时就不贴了
/**
* 判断是否可以竖向滑动
*/
public boolean isCanScroll() {
return scrollView.canScrollVertically(1) || scrollView.canScrollVertically(-1);
}
看一下源码里的解释
/**
* Check if this view can be scrolled vertically in a certain direction.
*
* @param direction Negative to check scrolling up, positive to check scrolling down.
* @return true if this view can be scrolled in the specified direction, false otherwise.
*/
public boolean canScrollVertically(int direction) {
final int offset = computeVerticalScrollOffset();
final int range = computeVerticalScrollRange() - computeVerticalScrollExtent();
if (range == 0) return false;
if (direction < 0) {
return offset > 0;
} else {
return offset < range - 1;
}
}
根据注释可知:负数表示向上滚动,正数表示向下滚动;我们判断是否可以向上或向下即可得知是否可以滚动。
注意:view刚创建的时候(Activity的onCreate),子控件未绘制完成,此时,子控件与父控件的宽高都是0,不应该在这里判断是否可滑动,应该在view绘制完成后,才可以进行判断。
例如
1:view绘制完成的回调里
2:后续其他业务触发的判断操作等。