判断 View 在竖直方向上能否滑动

来源:互联网 发布:网络诈骗的例子 编辑:程序博客网 时间:2024/05/18 17:55

转载地址:作者【HelloVass 】 - 判断 View 在竖直方向上能否滑动

    /**     * 检测一个 View 在给定的方向(up or down)能否竖直滑动     *     * @param 调用该方法的 view     * @param 负数表示检测上滑,正数表示下滑     * 返回 true 表示能在指定的方向滑动,false 反之     */    public static boolean canScrollVertically(View v, int direction) {        return IMPL.canScrollVertically(v, direction);    }

使用场景


在开源项目 android-Ultra-Pull-To-Refresh 中就需要对 PtrFrameLayout 中的 Content 进行检测,判断 Content 是否能在竖直方向上滚动。

public static boolean canChildScrollUp(View view) {    // 如果当前版本小于 14,那就得自己背锅    if (android.os.Build.VERSION.SDK_INT < 14) {    // 这里给出了如果当前 view 是 AbsListView 的实例的检测方法        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);    }}
0 0
原创粉丝点击