example - navegar entre fragments android studio
ViewPager en TabFragment no se carga por segunda vez (2)
Encontré el problema. Me tomó dos días, pero bueno, está arreglado.
En lugar de usar
mAdapter = new AlbumAdapter(getFragmentManager(), mActiveProject.getInspiration());
Deberías usar
mAdapter = new AlbumAdapter(getChildFragmentManager(), mActiveProject.getInspiration());
Tanto para 5 personajes
Intento crear una aplicación que tenga un ViewPager en un Fragmento que forma parte de un TabHost.
Todo funciona bien Tengo mi tabbar, puedo cambiar las pestañas. Cuando cambio a la pestaña con ViewPager, todo se muestra correctamente. Pero tan pronto como salgo de esta pestaña con ViewPager y devuelvo esta pestaña, mi contenido no se muestra. Si me desplazo hacia el lado dos veces, veo mi siguiente imagen. Y si retrocedo dos veces, también veo que las imágenes están cargadas (probablemente, las que están fuera de pantalla). Veo que mi TabFragment se está restableciendo cuando vuelvo, pero los fragmentos en ViewPager no están cargados.
He incluido una maqueta de pantalla y parte de mi código.
¿Alguien puede ayudar?
¡Aclamaciones!
@Override
public void onActivityCreated(Bundle savedInstanceState) {
mProjectText = (TextView) getView().findViewById(R.id.projectText);
mProjectText.setText(mActiveProject.getInspirationText());
mAdapter = new AlbumAdapter(getFragmentManager(), mActiveProject.getInspiration());
mPager = (ViewPager)getView().findViewById(R.id.pager);
mPager.setAdapter(mAdapter);
super.onActivityCreated(savedInstanceState);
}
public class AlbumAdapter extends FragmentStatePagerAdapter {
private ArrayList<ProjectContent> mItems;
public AlbumAdapter(FragmentManager fm, ArrayList<ProjectContent> items) {
super(fm);
this.mItems = items;
}
@Override
public Fragment getItem(int position) {
return AlbumContentFragment.newInstance(mItems.get(position));
}
@Override
public int getCount() {
return mItems.size();
}
@Override
public int getItemPosition(Object object) {
return POSITION_NONE;
}}
He estado buscando esto por mucho tiempo, finalmente encontré una solución. Cambie su ejemplo de adaptador de página FragmentPagerAdapter
por el ejemplo de FragmentStatePagerAdapter
:
class PageAdapter extends FragmentStatePagerAdapter {