with viewpager tablayout sectionspageradapter pageradapter multiple fragments fragmentactivity example activity android fragmentpageradapter

android - viewpager - tablayout fragmentpageradapter



¿Cuándo se llama getItem de FragmentPagerAdapter? (3)

Para ser más específico que la respuesta anterior (¡lo cual es correcto!), GetItem es invocado por el método instantiateItem (ViewGroup container, int position) de FragmentPagerAdapter. Por si acaso eso ayuda :)

Estoy escribiendo una aplicación que usa FragmentPagerAdapter. Los fragmentos del adaptador deben actualizarse de acuerdo con datos externos, pero eso no sucede. Noté que las clases de fragmentos solo se crean una instancia una vez, en la función getItem:

@Override public Fragment getItem(int position) { TabInfo info = mTabs.get(position); return Fragment.instantiate(mContext, info.clss.getName(), info.args); }

Incluso si elimino la clase y uso una nueva, nada ayuda; este método solo se llama una vez, la primera vez que se completa la pestaña y luego nunca más. Alguien tiene una idea de por qué?

¡Gracias!


Se llamará a getItem siempre que el adaptador necesite un fragmento y el fragmento no exista.

Si el fragmento ya existe en FragmentManager, entonces no hay necesidad de instanciarlo y getItem no necesita ser llamado.

Para actualizar un fragmento existente, deberá recuperarlo desde FragmentManager o el adaptador y manipularlo en consecuencia.

Por defecto, el viewpager creará fragmentos para la página visible y la siguiente a ella. Es decir, para empezar, fragmentos en la posición 1 y 2. Cuando deslice hacia la página 2, se creará el fragmento en la posición 3, etc.


Uso simple FragmentStatePagerAdapter lugar de FragmentPagerAdapter