Android 监听 ScrollView 滑动到最底部

本文介绍了一种精确监听Android ScrollView滑动到底部的方法。通过自定义ScrollBottomScrollView类并实现onScrollChanged方法,确保只在完全滑动到底部时触发监听事件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Android 监听 ScrollView 滑动到最底部

转载自: https://www.cnblogs.com/carmanloneliness/p/4355158.html

做产品时,有一个需求,需要监听ScrollView滑动到最底部。在网上找了些方法,都有这样或那样的问题,要不就是监听不精确,
要不就是重复监听,那些代码没有产品化,很不可靠。
经过自己试验,终于找到了个能够精确监听的实现方法。代码如下:

public class ScrollBottomScrollView extends ScrollView {

      private OnScrollBottomListener _listener;
      private int _calCount;

      public interface OnScrollBottomListener {
          void srollToBottom();
      }

     public void registerOnScrollViewScrollToBottom(OnScrollBottomListener l) {
         _listener = l;
     }

     public void unRegisterOnScrollViewScrollToBottom() {
         _listener = null;
     }

     public ScrollBottomScrollView(Context context, AttributeSet attrs) {
         super(context, attrs);
     }

     @Override
     protected void onScrollChanged(int l, int t, int oldl, int oldt) {
         View view = this.getChildAt(0);
         if (this.getHeight() + this.getScrollY() == view.getHeight()) {
             _calCount++;
             if (_calCount == 1) {
                 if (_listener != null) {
                     _listener.srollToBottom();
                }
             }
        } else {
             _calCount = 0;
        }
     }
}

用到这段代码的产品也测试上线了,没有Bug。

Android SDK 中类似于这样的不完美数不胜数,比如onTouch事件的传递,onMeasure方法的调用,都是很不精确。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值