public static boolean canChildScrollUp(View view) { if (android.os.Build.VERSION.SDK_INT < 14) { if (view instanceof AbsListView) { final AbsListView absListView = (AbsListView) view; return absListView.getChildCount() > 0 && (absListView.getFirstVisiblePosition() > 0 || absListView.getChildAt(0) .getTop() < absListView.getPaddingTop()); } else { return view.getScrollY() > 0; } } else { return view.canScrollVertically(-1); } }
解释一下: 如果view是AbsListView的实例,view的子控件的个数要大于0 && (absListView中第一个可见view对应的数据模型在数据源中的位置大于0 || absListView的第一个子控件的top(子控件view的左上角y坐标值) < absListView的顶部内边距)