J'ai besoin de connaître la position en pixels d'un élément dans une liste qui a été affichée en utilisant un ListView
. Il semble que je devrais obtenir l'un des de TextView et puis utiliser getTop()
, mais je ne peux pas comprendre comment obtenir une vue enfant d'un ListView
.Android: Accéder aux vues enfant à partir d'un ListView
Mise à jour: Les enfants du ViewGroup
ne correspondent pas 1 à 1 avec les éléments de la liste, pour un ListView
. Au lieu de cela, les enfants de ViewGroup
correspondent uniquement aux vues visibles en ce moment. Donc, getChildAt()
fonctionne sur un index interne au ViewGroup
et n'a pas nécessairement de rapport avec la position dans la liste utilisée par le ListView
.
Grande réponse, mais ne fonctionne pas tout à fait correctement lorsque vous avez des vues d'en-tête dans votre liste. L'affectation à 'firstPosition' devrait être' int firstPosition = listView.getFirstVisiblePosition() - listView.getHeaderViewsCount(); 'pour corriger cela. – pospi
@pospi: merci, bon point! J'ai mis à jour ma réponse pour tenir compte de cela. – Joe
Êtes-vous un médecin? parce que vous êtes un épargnant de vie. –