Android中ScrollView实现滑动距离监听器的方法
2016-10-10 14:15
881 查看
前言
众所周知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 ScrollView滑动实现仿QQ空间标题栏渐变
- android scrollview 滑动到顶端或者指定位置的实现方法
- Android中Toolbar随着ScrollView滑动透明度渐变效果实现
- Android编程开发ScrollView中ViewPager无法正常滑动问题解决方法
- Android HorizontalScrollView左右滑动效果
- Android开发控制ScrollView滑动速度的方法
- Android中使用ScrollView实现滑动到底部显示加载更多
- Android开发之ScrollView的滑动监听
- Android自定义控件ScrollView实现上下滑动功能
相关文章推荐
- android scrollview 滑动到顶端或者指定位置的实现方法
- Android开发实现标题随scrollview滑动变色的方法详解
- Android成长之路-实现监听器的三种方法
- android 左右滑动+索引图标实现方法与代码
- Android成长之路-实现监听器的三种方法
- Android中实现上下左右都可滑动的ScrollView
- Android:实现手势滑动的事件处理方法
- Android成长之路-实现监听器的三种方法
- Android ScrollView向上滑动控件顶部悬浮效果实现
- android list弹性滑动 2.3以下的实现 的两个方法 (备份)
- Android:实现手势滑动的事件处理方法
- android用最简单的方法实现QQ5.0的侧边栏滑动效果
- [android] ScrollView 滑动后回弹 的实现
- 【Android界面实现】解决ScrollView中嵌套Listview,Listview中嵌套Listview显示不完整和滑动冲突的问题
- Android ScrollView 实现 onScrollChanged 方法!!
- [转]Android中实现上下左右都可滑动的ScrollView
- Android:实现手势滑动的事件处理方法
- Android:实现手势滑动的事件处理方法
- 【Android界面实现】解决ScrollView中嵌套Listview,Listview中嵌套Listview显示不完整和滑动冲突的问题
- Android之Tab分页标签的实现方法一-----可滑动的Tab的3种方式