¿Por qué getCount se llama tantas veces en PagerAdapter?

He notado hoy que el PagerAdapter se llama una gran cantidad de veces. Cuento 393 cuando las páginas se desplazan lentamente. Vi esta pregunta, pero en realidad no me dio una buena respuesta.

  1. ¿Es este comportamiento normal?
  2. Si es así, ¿por qué se llama tan frecuentemente el método getCount?

Sólo para ser claro, estoy buscando una respuesta más amplia que la de la pregunta proporcionada. También me doy cuenta de que tengo que mantenerlo tan rápido y que no tengo control sobre cómo se llama, pero esa no es la cuestión aquí.

Como usted concluyó que se utiliza mucho en onTouchEvent. OnTouchEvent se llama cada vez que interactúas con la pantalla, lo que significa tocar mover y liberar eventos. Mover sólo un píxel resultaría en una llamada potencial a este método.

No hay mucho más que explicar, es sólo la forma en que se implementa. Por lo general, adapter.getCount se implementa con algo como List.getSize o Cursor.getCount. Y tiene casi cero sobrecarga. Si esto es un problema, optimice el método ListAdapter.getCount, almacene en caché el recuento o algo así. Sólo hacer cosas complejas allí cuando sea necesario y almacenar el resultado en caché hasta que se convierte en no válido.

  • Animación de desplazamiento personalizado (Inclinación, Card Deck, 3D, etc.)
  • Dos fragmentos en una página de viewpager
  • Android ViewPager obtiene la vista actual
  • Cargar sólo un fragmento en ViewPager
  • Deslizar entre las actividades de Android como con ViewPager
  • Android ViewPager con la pestaña que no mantiene el estado tras la rotación de la pantalla
  • Vista fija en el diseño de contenido de Viewpager, bajo CoordinatorLayout
  • Implementar pinch Zoom usando ViewPager
  • ¿Cómo dejar que sólo fragmentos específicos desplazarse dentro de un ViewPager de CoordinatorLayout?
  • "La vista de contenido aún no se ha creado" en Android Fragments
  • Crear un ViewPager infinito desplazándose en una dirección
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.