android listview count visible

Android: obtener un recuento de los niños visibles en una lista



listview count (3)

¿Hay alguna manera de contar el número de hijos visibles de la lista?

Tengo una vista de lista con información vinculada a una base de datos que puede cambiar en cualquier momento. Cuando se cambia la base de datos, envío una transmisión notificando a la clase ui que maneja la vista de lista. El elemento hijo relacionado con los datos modificados se actualiza. Lo estoy logrando al darle una etiqueta a cada elemento de la lista y luego iterar sobre la lista para encontrar la fila que coincida con la etiqueta de la transmisión.

Solo quiero iterar sobre los niños visibles. No es necesario que actualice manualmente las vistas que no son visibles, ya que reflejarán los nuevos datos cuando se creen. Actualmente itero desde listView.getfirstVisiblePosition () a listView.getChildCount (). Esto es mejor que nada, ya que no examino las filas sobre las filas visibles, pero tampoco quiero examinar las filas debajo de ellas.

Revisé la página de ListView de los desarrolladores de Android y no encontré nada. ¿Alguien sabe de una manera en que puedo obtener el conteo de niños visibles?

¡Gracias!


En referencia al comentario anterior de greg7gkb, solo quería señalar en caso de que alguien esté usando esto que hará que su cuenta disminuya en uno. Debería ser

(listView1.getLastVisiblePosition() - listView1.getFirstVisiblePosition()) + 1

Entonces, si el último visible era 8 y el primero visible era 5 , usted tendría (8-5) +1 = 4 mostrando: 5,6,7 y 8.

Parece que A. Abiri lo consiguió justo debajo.


Esta es una manera rápida de hacer que los niños visibles cuenten:

int visibleChildCount = (listView1.getLastVisiblePosition() - listView1.getFirstVisiblePosition()) + 1;


listView.getLastVisiblePosition (), ¿es esto lo que estás buscando? si no, iteración a través de vistas de niños ...

int count = 0; for (int i = 0; i <= listView.getLastVisiblePosition(); i++) { if (listView.getChildAt(i) != null) { count++; // saying that view that counts is the one that is not null, // because sometimes you have partially visible items.... } }