Android中ScrollView实现滑动距离监听器的方法

Android中ScrollView实现滑动距离监听器的方法,第1张

概述前言众所周知ScrollView是我们经常使用的一个UI控件,也许你在使用ScrollView的过程中会发现,当你想监听ScrollView滑动的距离时却没有合适的监听器!当然在API23中有setOnScrollChangeListener(View.OnScrollChang

前言

众所周知ScrollVIEw是我们经常使用的一个UI控件,也许你在使用ScrollVIEw的过程中会发现,当你想监听ScrollVIEw滑动的距离时却没有合适的监听器!当然在API 23中有setonScrollchangelistener(VIEw.OnScrollchangelistener l)可以使用,但是并不兼容低版本的API。那怎么办呢?只好重写ScrollVIEw来实现对滑动距离的监听了。

话不多说,直接上代码:

public class MyScrollVIEw extends ScrollVIEw { private OnScrollListener Listener; /** * 设置滑动距离监听器 */ public voID setonScrollListener(OnScrollListener Listener) {  this.Listener = Listener; } public MyScrollVIEw(Context context) {  super(context); } public MyScrollVIEw(Context context,AttributeSet attrs) {  super(context,attrs); } public MyScrollVIEw(Context context,AttributeSet attrs,int defStyleAttr) {  super(context,attrs,defStyleAttr); } // 滑动距离监听器 public interface OnScrollListener{ /** * 在滑动的时候调用,scrollY为已滑动的距离 */  voID onScroll(int scrollY); } @OverrIDe public voID computeScroll() {  super.computeScroll();  if(Listener!=null){   Listener.onScroll(getScrollY());  } }}

上面重写的MyScrollVIEw是在computeScroll()实现监听,因为ScrollVIEw内部是通过Scroller来实现的,当滑动的时候会去调用computeScroll()方法,从而达到监听的效果。

当然还有另一种方法,就是在onScrollChanged(int l,int t,int oldl,int oldt)去监听,最后的效果是一样的:

public class MyScrollVIEw extends ScrollVIEw { private OnScrollListener Listener; public voID setonScrollListener(OnScrollListener Listener) {  this.Listener = Listener; } public MyScrollVIEw(Context context) {  super(context); } public MyScrollVIEw(Context context,defStyleAttr); } public interface OnScrollListener{  voID onScroll(int scrollY); }  @OverrIDe  protected voID onScrollChanged(int l,int oldt) {   super.onScrollChanged(l,t,oldl,oldt);   if(Listener != null){    Listener.onScroll(t);   }  } }

总结

以上就是这篇文章的全部内容了,希望能对各位AndroID开发者们有所帮助,如果有疑问大家可以留言交流。

总结

以上是内存溢出为你收集整理的Android中ScrollView实现滑动距离监听器的方法全部内容,希望文章能够帮你解决Android中ScrollView实现滑动距离监听器的方法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1148021.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-31
下一篇2022-05-31

发表评论

登录后才能评论

评论列表(0条)

    保存