Necesito averiguar la posición de píxel de un elemento en una lista que se ha mostrado usando un ListView
. Parece que debería obtener uno de TextView y luego usarlo getTop()
, pero no puedo averiguar cómo obtener una vista secundaria de un archivoListView
.
Actualización: los elementos secundarios de ViewGroup
no se corresponden 1 a 1 con los elementos de la lista, para a ListView
. En cambio, los elementos ViewGroup
secundarios de 'corresponden solo a las vistas que son visibles en este momento. Entonces getChildAt()
opera en un índice que es interno al ViewGroup
y no necesariamente tiene nada que ver con la posición en la lista que ListView
usa.
firstPosition
debería serint firstPosition = listView.getFirstVisiblePosition() - listView.getHeaderViewsCount();
arreglar esto.ListView
ya está manejando "mover" las vistas secundarias después de reciclarconvertView
s antiguas , etc., por lo que puede estar seguro de queListView.getChildAt(0)
es la primera vista adjunta desde el adaptador. Es posible que no sea completamente visible (y es posible que ni siquiera sea visible en absoluto, según elListView
umbral de "visibilidad" antes de reciclar una vista que se considera "desplazada fuera de la vista")