Android中ScrollView实现滑动距离监听器的方法
程序员文章站
2024-03-04 17:28:11
前言
众所周知scrollview是我们经常使用的一个ui控件,也许你在使用scrollview的过程中会发现,当你想监听scrollview滑动的距离时却没有合适的监听...
前言
众所周知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, attributeset attrs) { super(context, attrs); } public myscrollview(context context, attributeset attrs, int defstyleattr) { super(context, attrs, defstyleattr); } public interface onscrolllistener{ void onscroll(int scrolly); } @override protected void onscrollchanged(int l, int t, int oldl, int oldt) { super.onscrollchanged(l, t, oldl, oldt); if(listener != null){ listener.onscroll(t); } } }
总结
以上就是这篇文章的全部内容了,希望能对各位android开发者们有所帮助,如果有疑问大家可以留言交流。
推荐阅读
-
Android 中 GridView嵌套在ScrollView里只有一行的解决方法
-
Android中ScrollView实现滑动距离监听器的方法
-
Android App中ViewPager所带来的滑动冲突问题解决方法
-
Android中ViewPager实现滑动条及与Fragment结合的实例教程
-
详解Android中通过Intent类实现组件间调用的方法
-
android中view手势滑动冲突的解决方法
-
Android中定时执行任务的3种实现方法(推荐)
-
Android中WebView与Js交互的实现方法
-
Android实现在子线程中更新Activity中UI的方法
-
Android App中ListView仿QQ实现滑动删除效果的要点解析