Viewpager + FragmentpagerAdapet + Fragmentos + ListView = aplicación insanamente lenta

Tengo un viewpager en mi disposición, ese viewpager sostiene un sistema de 10 fragmentos. Cada fragmento tiene una vista de lista, que se rellena asincrónicamente. Actualmente estoy usando FragmentPagerAdapter como adaptador para el viewpager y las llamadas de API para rellenar la vista de lista se hace en onCreateView de cada fragmento. El golpe es increíblemente lento y la aplicación se cierra debido a los problemas de memoria.

¿Cómo lograr una visualización suave y responsable (viewpager + listview) como Google Play? Smooth swiping + buena caché de los elementos de la lista?

Introduzca aquí la descripción de la imagen

Hay muchas maneras de mejorar el rendimiento de un ViewPager integrado con un ListView .

Primero, cambie el PagerAdapter de FragmentPagerAdapter a FragmentStatePagerAdapter . La diferencia es que usted carga 10 páginas dentro del buscapersonas. Y si pasó por todo el gerente sólo pondrá las páginas en onStop() por lo tanto, se reserva espacio. Sin embargo, usar FragmentStatePagerAdapter destruirá estas páginas pero guardará su instancia utilizando el método onSaveInstanceState . Así que cuando regreses no te tomará mucho tiempo cargar y ahorrarás memoria.

Normalmente FragmentPagerAdapter se utiliza con 3 páginas o menos.

La segunda forma de mejorar el rendimiento (pero drena la batería más rápidamente) es añadir esta línea a su AndroidManifest.xml con su etiqueta de aplicación:

 android:hardwareAccelerated="true" 

La tercera forma es detectar el gesto de deslizamiento. Puede hacerlo implementando onPageChangeListener luego en el método implementado onPageScrollStateChanged , compruebe si la página está Idle continuación, agregue ListView . De lo contrario, detenga el uso de ListView y desplácese a la página siguiente. Aquí hay una mejor explicación de este punto.

Espero que algunos de estos puntos pueden ayudarle a lograr un mejor rendimiento.

  • Cambiar dinámicamente el recuento de PagerIndicator en ViewPager o PagerAdapter
  • Cómo configurar la imagen personalizada en el espacio entre dos CirclePageIndicator en android?
  • ViewPagerIndicator no muestra el texto del título
  • Uso de la fuente personalizada en viewpagerindicator
  • Divisor no funciona para TitlePageIndicator con viewpagerindicator & actionbarsherlock
  • Navegación de la barra de acciones de Android deja de funcionar
  • Uso de la biblioteca ViewPagerIndicator con Android Studio y Gradle
  • Creación de una compilación de Gradle para Android que utiliza ViewPagerIndicator
  • Añadir ViewPagerIndicator a Android Studio
  • Anidar las pestañas en Android 4 con la biblioteca de soporte (ActionBarSherlock)
  • Cambiar el nombre de página en Android Viewpager
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.