web-dev-qa-db-fra.com

Android: Détection lorsque ScrollView atteint le bas

Duplicata possible:
Comment déclencher un événement lorsque scrollView atteint le bas avec Android?

J'essaie depuis environ une heure de détecter quand mon scrollView arrive en bas de l'écran. En raison des différentes tailles d'écran et de ce qui ne concerne pas Android, je ne peux pas simplement dire qu'il est en bas lorsque sa position Y atteint une certaine valeur, mais il n'y a pas de méthode qui détecte quand il est en bas que j'ai trouvé.

Je suis sûr qu'il existe une solution simple à cela, en soustrayant la hauteur de la vue par une autre variable ou quelque chose, mais pour une raison quelconque, ce n'est pas en cliquant pour moi. Toutes les idées seraient appréciées, merci.

38
Peacecraft

Essaye ça:

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

Pour l'implémenter, étendez ScrollView puis remplacez la méthode onScrollChanged (héritée de View).

Référence: Android: Comprendre quand ScrollView a atteint le bas

82
Harry Joy