Android 監聽 ScrollView 滑動到最底部。


做產品時,有一個需求,需要監聽ScrollView滑動到最底部。在網上找了些方法,都有這樣或那樣的問題,要不就是監聽不精確,

要不就是重復監聽,那些代碼沒有產品化,很不可靠。

經過自己試驗,終於找到了個能夠精確監聽的實現方法。代碼如下:

 1 public class ScrollBottomScrollView extends ScrollView {
 2 
 3     private OnScrollBottomListener _listener;
 4     private int _calCount;
 5 
 6     public interface OnScrollBottomListener {
 7         void srollToBottom();
 8     }
 9 
10     public void registerOnScrollViewScrollToBottom(OnScrollBottomListener l) {
11         _listener = l;
12     }
13 
14     public void unRegisterOnScrollViewScrollToBottom() {
15         _listener = null;
16     }
17 
18     public ScrollBottomScrollView(Context context, AttributeSet attrs) {
19         super(context, attrs);
20     }
21 
22     @Override
23     protected void onScrollChanged(int l, int t, int oldl, int oldt) {
24         View view = this.getChildAt(0);
25         if (this.getHeight() + this.getScrollY() == view.getHeight()) {
26             _calCount++;
27             if (_calCount == 1) {
28                 if (_listener != null) {
29                     _listener.srollToBottom();
30                 }
31             }
32         } else {
33             _calCount = 0;
34         }
35     }
36 }

用到這段代碼的產品也測試上線了,沒有Bug。

Android SDK 中類似於這樣的不完美數不勝數,比如onTouch事件的傳遞,onMeasure方法的調用,都是很不精確,

需要自己再優化的,沒辦法,無力吐槽。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM