判断ScrollView是否滑动到底部或顶部

自定义Scrollview ,重写onOverScrolled,定义滑动到底部或顶部监听。在用的时候set监听即可。


public class CustomScrollView extends ScrollView {
    private boolean isScrolledToTop = true;// 初始化的时候设置一下值
    private boolean isScrolledToBottom = false;
    public CustomScrollView(Context context) {
        super(context);
    }

    public CustomScrollView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    public CustomScrollView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public interface ScrollViewListener {
        void onScrolledToBottom();
        void onScrolledToTop();
    }
    private ScrollViewListener mScrollViewListener;

    public void setScanScrollChangedListener(ScrollViewListener ScrollViewListener) {
        mScrollViewListener = ScrollViewListener;
    }

    @Override
    protected void onOverScrolled(int scrollX, int scrollY, boolean clampedX, boolean clampedY) {
        super.onOverScrolled(scrollX, scrollY, clampedX, clampedY);
        if (scrollY <= 0) {
            isScrolledToTop = clampedY;
            isScrolledToBottom = false;
        } else {
            isScrolledToTop = false;
            isScrolledToBottom = clampedY;
        }
        notifyScrollChangedListeners();
    }

    private void notifyScrollChangedListeners() {
        if (isScrolledToTop) {
            if (mScrollViewListener != null) {
                mScrollViewListener.onScrolledToTop();
            }
        } else if (isScrolledToBottom) {
            if (mScrollViewListener != null) {
                mScrollViewListener.onScrolledToBottom();
            }
        }
    }
}

猜你喜欢

转载自blog.csdn.net/lemon_husky/article/details/78761239
今日推荐