ScrollView监听滑动到顶部和底部的方法
Posted jieth
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ScrollView监听滑动到顶部和底部的方法相关的知识,希望对你有一定的参考价值。
不需要监听滑动位置,只需要重写ScrollView的onOverScrolled和stopNestedScroll方法就可以了
public class ReadScrollView extends ScrollView{ private int mScrollY = 0; private boolean mClampedY = false; public ReadScrollView(Context context) { super(context); } public ReadScrollView(Context context, AttributeSet attrs) { super(context, attrs); } public ReadScrollView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } /** * 监听变化---一般用不到 * @param scrollX * @param scrollY * @param clampedX * @param clampedY */ // @Override // protected void onScrollChanged(int l, int t, int oldl, int oldt) { // super.onScrollChanged(l, t, oldl, oldt); // if (scrollChangedListener != null){ // scrollChangedListener.onScrollChanged(l,t,oldl,oldt); // } //// DebugUtil.d("l==" + l +" t==" + t +" oldl==" + oldl + " oldt=="+oldt); // } @Override protected void onOverScrolled(int scrollX, int scrollY, boolean clampedX, boolean clampedY) { super.onOverScrolled(scrollX, scrollY, clampedX, clampedY); //scrollY=位置0和最底y坐标;clampedY=是否到顶部或者底部 mScrollY = scrollY; mClampedY = clampedY; // DebugUtil.d("======l==onOverScrolled"+" scrollY="+scrollY+" clampedY="+clampedY ); } /** * 刷新到顶部和底部 */ @Override public void stopNestedScroll() { super.stopNestedScroll(); if (mClampedY){ if (mScrollY == 0){ scrollChangedListener.onScrollChangedTop(); }else { scrollChangedListener.onScrollChangedBottom(); } } DebugUtil.d("======l==stopNestedScroll" ); } OnScrollChangedListener scrollChangedListener; public void setScrollChangedListener(OnScrollChangedListener scrollChangedListener) { this.scrollChangedListener = scrollChangedListener; } /** * */ public interface OnScrollChangedListener{ //到达顶部 void onScrollChangedTop(); //到达底部 void onScrollChangedBottom(); //监听变化 // void onScrollChanged(int l,int t,int oldl,int oldt); } }
使用
scrollview.setScrollChangedListener(new ReadScrollView.OnScrollChangedListener() {
@Override
public void onScrollChangedTop() {
ShowUtils.toast("顶部");
}
@Override
public void onScrollChangedBottom() {
ShowUtils.toast("底部");
}
});
以上是关于ScrollView监听滑动到顶部和底部的方法的主要内容,如果未能解决你的问题,请参考以下文章