2011-02-10 37 views
35

thể trùng lặp:
How to trigger an event when scrollView reach the bottom with Android?Android: Phát hiện Khi scrollview Hits dưới

tôi đã cố gắng cho một giờ hoặc lâu hơn để phát hiện khi scrollview của tôi được để dưới cùng của màn hình. Do kích thước màn hình khác nhau và những thứ không liên quan đến Android, tôi không thể đơn giản nói rằng nó ở dưới cùng khi vị trí Y của nó đạt đến một giá trị nhất định, nhưng không có phương pháp nào phát hiện khi nó ở dưới cùng mà tôi tìm thấy.

Tôi chắc chắn có một giải pháp đơn giản cho việc này, trừ chiều cao của chế độ xem theo một số biến khác hoặc một số thứ khác, nhưng vì lý do nào đó, nó không phải là nhấp chuột cho tôi. Bất kỳ ý tưởng sẽ được đánh giá cao, cảm ơn bạn.

Trả lời

80

Hãy thử điều này:

@Override 
protected void onScrollChanged(int l, int t, int oldl, int oldt) 
{ 
    // Grab the last child placed in the ScrollView, we need it to determinate the bottom position. 
    View view = (View) getChildAt(getChildCount()-1); 

    // Calculate the scrolldiff 
    int diff = (view.getBottom()-(getHeight()+getScrollY())); 

    // if diff is zero, then the bottom has been reached 
    if(diff == 0) 
    { 
     // notify that we have reached the bottom 
     Log.d(ScrollTest.LOG_TAG, "MyScrollView: Bottom has been reached"); 
    } 

    super.onScrollChanged(l, t, oldl, oldt); 
} 

Để thực hiện điều này, mở rộng ScrollView và sau đó ghi đè lên onScrollChanged phương pháp (thừa hưởng từ View).

tham khảo: Android: Understanding when ScrollView has reached the bottom

+27

Theo kinh nghiệm của tôi, bạn nên kiểm tra if (diff <= 0) – littleK

+1

có ý nghĩa nếu nó xảy ra để trở về -1. – BlackHatSamurai

+10

chỉ để cung cấp tín dụng, câu trả lời đã được sao chép từ http://www.marteinn.se/blog/?p=485 – Gabor

Các vấn đề liên quan