手机
当前位置:查字典教程网 >编程开发 >安卓软件开发 >Android中ScrollView实现滑动距离监听器的方法
Android中ScrollView实现滑动距离监听器的方法
摘要:前言众所周知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中ScrollView实现滑动距离监听器的方法】相关文章:

解决Android SDK下载和更新失败的方法详解

android开发中获取手机分辨率大小的方法

Android编程实现擦除Bitmap中某一块的方法

Android HTTP 实现与服务器通信

Android中button实现onclicklistener事件的两种方式

解析Android中实现滑动翻页之ViewFlipper的使用详解

Android笔记之:在ScrollView中嵌套ListView的方法

Android中3种全屏方法及3种去掉标题栏的方法

Android 用SQLite实现事务的方法

Android里实现退出主程序的提示代码

精品推荐
分类导航