ViewPager + Adaptador en Fragmento => laggy swiping

Tengo un ViewPager con algunos fragmentos. Cada fragmento tiene un ListView en un SlidingDrawer (= invisible antes de swiping) con un ArrayAdapter .

El adaptador se establece en onCreateView() , que ralentiza el deslizamiento, porque 30 elementos de la lista tienen que cargar cada vez que deslizo, porque se están creando nuevos fragmentos.

¿Mi pregunta es, si es posible fijar el adaptador después de golpear cuando ViewPager está inactivo? ¿O hay un mejor camino? La Lista debe estar ya cargada cuando se ha expandido el SlidingDrawer.

¿Mi pregunta es, si es posible fijar el adaptador después de golpear cuando el paginador está inactivo?

Hay el OnPageChangeListener que se puede establecer en el ViewPager para supervisar los gestos de deslizamiento. A continuación, puede utilizar el onPageSelected() (o el onPageScrollStateChanged() para supervisar el estado actual) para recibir notificación cuando se ha seleccionado una nueva página y comenzar desde ese método la carga de datos.

Además, asegúrese de que el ListView es responsable del retraso y no de alguna otra parte de su código.

Tuve un problema similar … Utilicé a los oyentes. Sin embargo, cuando deslizar dos páginas atrás a la parte de atrás era laggy … Hice algo como esto que mejoró la experiencia ….

 viewpager.setOnPageChangeListener(new OnPageChangeListener() { int positionCurrent; boolean dontLoadList; @Override public void onPageScrollStateChanged(int state) { if(state == 0){ // the viewpager is idle as swipping ended new Handler().postDelayed(new Runnable() { public void run() { if(!dontLoadList){ //async thread code to execute loading the list... } } },200); } } } @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { positionCurrent = position; if( positionOffset == 0 && positionOffsetPixels == 0 ) // the offset is zero when the swiping ends{ dontLoadList = false; } else dontLoadList = true; // To avoid loading content for list after swiping the pager. } } 

Si tardas unos milisegundos en cargar la lista que viene como suplemento al viewpager, está bien en términos de UX en lugar de dar una mala experiencia de swiping … Por lo tanto, la idea es esperar 400ms en el hilo antes de cargar el Lista y cerciorarse de que usted realmente no carga el contenido cuando el usuario está intentando deslizar rápidamente para ver el contenido del viewpager …

  • Java cómo manejar "Cast no verificado" para Array <MyItem> desde el objeto
  • Johnzon desirializando la fecha sobre el resto
  • Permisos de Android SU: ¿Cómo usarlos?
  • Autenticación desde el dispositivo Android contra Spring Security Rest API
  • Guardar / cargar el estado del documento de forma rápida y robusta para el editor de imágenes
  • Android ¿Cómo escuchar los eventos del botón de volumen?
  • JNI se bloquea cuando se llama con un argumento String
  • ¿Qué hace synchronized () / wait () / notifyAll () en Java?
  • LibGDX y ScrollPane con múltiples widgets
  • Almacenamiento de mapa de bits en la tarjeta SD pérdida de la calidad de imagen
  • La importación android.support no se puede resolver
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.