ScrollView监听滑动到顶部,底部

public class ObservableScrollView extends ScrollView {

    private OnScrolldListener mOnScrolldListener;

    public ObservableScrollView(Context context) {
        super(context);
        // TODO Auto-generated constructor stub
    }

    public ObservableScrollView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        // TODO Auto-generated constructor stub
    }

    public ObservableScrollView(Context context, AttributeSet attrs) {
        super(context, attrs);
        // TODO Auto-generated constructor stub
    }

    @Override
    protected void onScrollChanged(int l, int t, int oldl, int oldt) {
        // TODO Auto-generated method stub
        View view = (View) getChildAt(getChildCount() - 1);
        int diff = (view.getBottom() - (getHeight() + getScrollY()));

        if (diff == 0 && mOnScrolldListener != null) {
            mOnScrolldListener.onBottomReached();
        } else if (getScrollY() == 0 && mOnScrolldListener != null) {
            mOnScrolldListener.onTopReached();
        }

        super.onScrollChanged(l, t, oldl, oldt);
    }
    

    public OnScrolldListener getOnScrolldListener() {
        return mOnScrolldListener;
    }

    public void setOnScrolldListener(OnScrolldListener mOnScrolldListener) {
        this.mOnScrolldListener = mOnScrolldListener;
    }



    /**
     * Event listener.
     */
    public interface OnScrolldListener {

        public void onTopReached();

        public void onBottomReached();
    }

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容