ScrollView的滑动事件===判断是否滑到底部

来源:互联网 发布:公务员数学题软件 编辑:程序博客网 时间:2024/06/01 09:09
首先自定义一个ScrollView 
package one.bw.com.jingdong.sousuo.view;import android.content.Context;import android.util.AttributeSet;import android.util.Log;import android.widget.ScrollView;import one.bw.com.jingdong.sousuo.inerts.ScrollViewListener;/** * Created by Administrator on 2017/12/13/013. */public class MyScrollView extends ScrollView {
//定义一个接口的对象    private ScrollViewListener scrollViewListener = null;    public MyScrollView(Context context, AttributeSet attrs) {        super(context, attrs);    }//对外提供接口回调的方法    public void setScrollViewListener(ScrollViewListener scrollViewListener) {        this.scrollViewListener = scrollViewListener;    }    @Override    protected void onScrollChanged(int l, int t, int oldl, int oldt) {        super.onScrollChanged(l, t, oldl, oldt);        //scrollview的起始点+总高度==crollViewcomputeVerticalScrollRange        if(getScrollY() + getHeight() ==  computeVerticalScrollRange())        {            Log.d("jiaba","------滚动到最下方------");            if(scrollViewListener!=null){                scrollViewListener.onScrollChanged(this, l, t, oldl, oldt);            }        }    }}
在做一个接口的回调,传值
package one.bw.com.jingdong.sousuo.inerts;import one.bw.com.jingdong.sousuo.view.MyScrollView;/** * Created by Administrator on 2017/12/13/013. */public interface ScrollViewListener {    void onScrollChanged(MyScrollView context, int x, int y, int oldx, int oldy);}
最后activity中的代码,,
//上拉加载数据        souxiangScrollView.setScrollViewListener(new ScrollViewListener() {            @Override            public void onScrollChanged(MyScrollView context, int x, int y, int oldx, int oldy) {//                Toast.makeText(MySouSuoShow.this,"正在加载。。。",Toast.LENGTH_SHORT).show();                try {                    Thread.sleep(1000);                } catch (InterruptedException e) {                    e.printStackTrace();                }                List<MySouXiangBean.DataBean> data = mySouXiangBean.getData();                list.addAll(data);
setAdapter();
}