返回顶部
首页 > 资讯 > 移动开发 >Android中ScrollView实现滑动距离监听器的方法
  • 830
分享到

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

监听方法scrollview监听器Android 2022-06-06 07:06:02 830人浏览 薄情痞子
摘要

前言 众所周知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{
 
  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编程自定义View时添加自己的监听器示例Android实现检测手机摇晃的监听器Android编程之监听器用法实例分析Android编程之监听器的实现方法Android实现静态广播监听器的方法android Animation监听器AnimationListener的使用方法)Android控件系列之Button以及Android监听器使用介绍android监听器实例代码


--结束END--

本文标题: Android中ScrollView实现滑动距离监听器的方法

本文链接: https://lsjlt.com/news/23785.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作