2011-02-10 6 views
35

Powiel możliwe:
How to trigger an event when scrollView reach the bottom with Android?Android: Wykrywanie Kiedy Scrollview Odsłon dno

staram przez godzinę lub tak, aby wykryć, kiedy mój Scrollview dostaje się do dolnej części ekranu. Z powodu różnych rozmiarów ekranu i tego, co nie jest związane z Androidem, nie mogę po prostu powiedzieć, że jest na dole, gdy jego pozycja Y osiąga określoną wartość, ale nie ma metody, która wykrywa, kiedy znajduje się na dole, którą znalazłem.

Jestem pewien, że istnieje proste rozwiązanie tego problemu, odejmowanie wysokości widoku przez jakąś inną zmienną lub coś takiego, ale z jakiegoś powodu po prostu mnie nie klika. Wszelkie pomysły zostaną docenione, dziękuję.

Odpowiedz

80

Spróbuj:

@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); 
} 

Aby to realizować, rozciągają ScrollView i zastąpić metodę onScrollChanged (dziedziczona z View).

referencyjny: Android: Understanding when ScrollView has reached the bottom

+27

Z mojego doświadczenia, należy sprawdzić, czy (różn <= 0) – littleK

+1

sens, jeśli to się dzieje, aby powrócić -1. – BlackHatSamurai

+10

tylko po to, aby dać kredyt, odpowiedź została skopiowana z http://www.marteinn.se/blog/?p=485 – Gabor