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