Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Cómo carga fragmento en ViewPager sólo cuando su seleccionado

Im usando 3 Fragmentos dentro de un Viewpager, el problema de su im cargando grandes datos en asytask y cargadores, en dispositivos como HTC uno funciona bien, sin embargo en los dispositivos de gama baja tomar mucho tiempo. Esto es porque principalmente cuando implemento el pagerAdapter pongo los Fragmentos dentro de un arrayList, esta fuerza los fragmentos instatiate cuando la actividad principal está cargada. Lo que necesito su sólo "carga" el primer fragmento (principal) y cuando el usuario "swype" carga el otro fragmento. Es una manera de lograr esto? Esta es mi páginaAdapater

public class PagerAdapter extends FragmentPagerAdapter { private final ArrayList<Fragment> mFragments = new ArrayList<Fragment>(); // private final ArrayList<String> titulos = new ArrayList<String>(); // private int NUM_PAGES =0; public PagerAdapter(FragmentManager manager,int num_pages) { super(manager); // this.NUM_PAGES = num_pages; } public void addFragment(Fragment fragment,String title) { mFragments.add(fragment); notifyDataSetChanged(); } @Override public int getCount() { //return NUM_PAGES; return mFragments.size(); } @Override public Fragment getItem(int position) { return mFragments.get(position); } } 

  • Escribir / Geotag JPEG (datos EXIF) en Android
  • Obtener la vista del fragmento de FragmentActivity
  • ImageLoader vs Universal Image Loader de Android
  • ¿Alinear los iconos de la barra de herramientas de derecha a izquierda?
  • Android.graphics.drawable.ColorDrawable no se puede convertir en android.support.v7.widget.RoundRectDrawableWithShadow
  • ¿Cuáles son las unidades de temperatura y voltaje de la batería cuando Intent.BATTERY_ACTION_CHANGED en el dispositivo android?
  • Iniciar sesión con permiso adicional con Facebook SDK 3 para Android
  • Fuente personalizada para webview android
  • La vista de Fragmento de ViewPager se pierde cuando el fragmento padre de ViewPager se oculta y luego se muestra
  • Error al inflar la clase CollapsingToolbarLayout
  • Al ser dicho proyecto no está usando el sistema de compilación gradle cuando es
  • Configuración de la posición de desplazamiento de ListView bien en Android
  • 3 Solutions collect form web for “Cómo carga fragmento en ViewPager sólo cuando su seleccionado”

    El método anterior de Sun no funcionó para mí (tal vez hace por usted), pero pensé que compartiría mi edición de su método también. Muy buen método por el camino Sol!

     private boolean _hasLoadedOnce= false; // your boolean field @Override public void setUserVisibleHint(boolean isFragmentVisible_) { super.setUserVisibleHint(true); if (this.isVisible()) { // we check that the fragment is becoming visible if (isFragmentVisible_ && !_hasLoadedOnce) { new NetCheck().execute(); _hasLoadedOnce = true; } } } 

    Voy a añadir mi solución aquí desde que me enfrenté a un problema similar. Mi tarea asíncrona no cargaba enormes cantidades de datos, pero evita llamadas de red innecesarias. Esto es lo que he añadido en mi Fragmento:

     private boolean _hasLoadedOnce= false; // your boolean field @Override public void setUserVisibleHint(boolean isFragmentVisible_) { super.setUserVisibleHint(isVisibleToUser); if (this.isVisible()) { // we check that the fragment is becoming visible if (!isFragmentVisible_ && !_hasLoadedOnce) { //run your async task here since the user has just focused on your fragment _hasLoadedOnce = true; } } } 

    Con el código anterior, su Fragmento se cargará, pero su tarea asíncrona no se ejecutará hasta que el usuario realmente se desplaza al fragmento por primera vez. Una vez visualizada, la tarea asíncrona se ejecutará por primera vez automáticamente. A continuación, puede proporcionar una forma de cargar más datos a través de un botón o tirar para actualizar. El fragmento anterior estaba en mi ViewPager y parecía funcionar bien.

    Utilice fragmentStatePageAdapter si tiene muchas páginas y desea destruirlas cuando no estén visibles. Ha implementado un setMenuVisibility (boolean menuVisible) cuando el fragmento se hace visible, así que use eso.

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.