Android开发之ScrollView的滑动监听
我们需要监听ScroView的滑动情况,比如滑动了多少距离,是否滑到布局的顶部或者底部。可惜的是SDK并没有相应的方法,不过倒是提供了一个
protectedvoidonScrollChanged(intl,intt,intoldl,intoldt)
显然这个方法是不能被外界调用的,因此就需要把它暴露出去,解决方式就是写一个接口
/**
*Createdby刘楠on2016/8/210021.17:24
*/
publicinterfaceScrollViewListener{
voidonScrollChanged(ObservableScrollViewobservableScrollView,intx,inty,intoldx,intoldy);
}
然后重写ScrollView类,给它提供上面写的回调接口
packagecom.liu.titlealpha.view;
importandroid.content.Context;
importandroid.util.AttributeSet;
importandroid.widget.ScrollView;
/**
*Createdby刘楠on2016/8/210021.17:23
*/
publicclassObservableScrollViewextendsScrollView{
privateScrollViewListenermScrollViewListener=null;
publicvoidsetScrollViewListener(ScrollViewListenerscrollViewListener){
mScrollViewListener=scrollViewListener;
}
publicObservableScrollView(Contextcontext){
super(context);
}
publicObservableScrollView(Contextcontext,AttributeSetattrs){
super(context,attrs);
}
publicObservableScrollView(Contextcontext,AttributeSetattrs,intdefStyleAttr){
super(context,attrs,defStyleAttr);
}
@Override
protectedvoidonScrollChanged(intx,inty,intoldx,intoldy){
super.onScrollChanged(x,y,oldx,oldy);
if(mScrollViewListener!=null){
mScrollViewListener.onScrollChanged(this,x,y,oldx,oldy);
}
}
}
布局时,用重写的这个ScrollView