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); } } 

  • Android RecyclerView con GridLayoutManager hace que el artículo abarque varias filas
  • LocationListener de NETWORK_PROVIDER está habilitado pero, onLocationChanged nunca se llama
  • ¿Cuál es la alternativa al sensor de orientación de Android?
  • ¿Cómo obtener mi contexto de actividad?
  • ¿Hay una manera de llenar el padre menos un número fijo en Android RelativeLayout?
  • ¿Proguard.cfg es necesario para proyectos de biblioteca?
  • ¿Es posible pellizcar un gradiente estirable?
  • PreferenceFragment - Diferencia entre getPreferenceManager () y getPreferenceScreen ()?
  • Travis CI Android Tests: no hay dispositivos conectados
  • Habilitar excepción C ++
  • El valor en edittext no se muestra hasta que se enfoque. Androide
  • No se pudo encontrar com.google.android.gms: play-services: 3.1.59 3.2.25 4.0.30 4.1.32 4.2.40 4.2.42 4.3.23 4.4.52 5.0.77 5.0.89 5.2.08 6.1. 11 6.1.71 6.5.87
  • 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.