Android: comment faire pour vérifier si une Vue à l'intérieur de la ScrollView est-elle visible?

J'ai un ScrollView qui détient une série de Views. Je voudrais être en mesure de déterminer si une vue est actuellement visible (si une partie est actuellement affichée par le ScrollView). Je m'attends à ce que le code ci-dessous pour ce faire, étonnamment, il n'a pas:

Rect bounds = new Rect();
view.getDrawingRect(bounds);

Rect scrollBounds = new Rect(scroll.getScrollX(), scroll.getScrollY(), 
        scroll.getScrollX() + scroll.getWidth(), scroll.getScrollY() + scroll.getHeight());

if(Rect.intersects(scrollBounds, bounds))
{
    //is  visible
}
  • Je suis curieux de savoir comment vous avez obtenu ce travail. Je suis en train de faire la même chose mais d'une ScrollView ne peut accueillir 1 enfant direct. Sont votre "série de points de vue" enveloppé dans une autre mise en page à l'intérieur de la ScrollView? C'est la façon dont le mien, sont disposées mais lorsque je fais cela, aucune des réponses données ici, le travail pour moi.
  • Oui, ma série de points de vue sont à l'intérieur d'un LinearLayout, qui est le 1er enfant de la ScrollView. Qberticus réponse a fonctionné pour moi.
InformationsquelleAutor ab11 | 2011-01-07