Tengo un error extraño al usar un ViewPager dentro de un Fragmento

Ok voy a tratar de hacer esto lo más claro posible. Tengo un fragmento llamado CheckerManager que contiene un ViewPager. Este ViewPager permitirá al usuario deslizar entre 3 Fragmentos, todos los cuales son una instancia de otro Fragmento llamado CheckerFragment. Estoy utilizando un FragmentPagerAdapter para manejar paginación. Así es como se ve

private class PagerAdapter extends FragmentPagerAdapter { CharSequence mTabTitles[]; public PagerAdapter(FragmentManager fm, CharSequence tabTitles[]) { super(fm); mTabTitles = tabTitles; } @Override public Fragment getItem(int position) { switch(position) { case 0: return CheckerFragment.newInstance(MainFragment.DRAW_TITLE_LOTTO); case 1: return CheckerFragment.newInstance(MainFragment.DRAW_TITLE_DAILY); case 2: return CheckerFragment.newInstance(MainFragment.DRAW_TITLE_EURO); default: return null; } } @Override public CharSequence getPageTitle(int position) { return mTabTitles[position]; } @Override public int getCount() { return 3; } } 

Sé que el ViewPager siempre creará el Fragmento a cada lado del Fragmento actual. Así que diga que mis 3 CheckerFragments se llaman A, B y C y el Fragmento actual es A. B ya ha sido creado. Pero mi problema es que aunque todavía estoy mirando Fragmento A, Fragmento B es el Fragmento 'activo'. Cada entrada que hago es en realidad correspondiente al fragmento B y no A. El fragmento activo es siempre el que ha sido creado por última vez por el ViewPager.

He mirado un par de cosas para ver si alguien ha tenido el mismo problema, pero me resulta difícil incluso describir lo que está mal. Creo que es algo con el hecho de que todos los fragmentos ViewPagers son del mismo tipo es decir – CheckerFragment. Tengo una implementación de trabajo de un ViewPager dentro de un fragmento en otra parte de la aplicación y la única diferencia que puedo decir es que cada página es un tipo diferente de Fragmento.

¡Cualquier ayuda sería apreciada!

*EDITAR

 PagerAdapter adapter = new PagerAdapter(getChildFragmentManager(), tabTitles); ViewPager viewPager = (ViewPager)view.findViewById(R.id.viewPagerChecker); viewPager.setAdapter(adapter); 

Me siento bastante estúpido, pero me enteré de cuál era el problema. En mi CheckerFragment llamaría a getArguments () para recuperar una cadena extra y usaría esto para determinar cómo diseñar el fragmento. El problema fue que hice este extra un miembro estático de CheckerFragment. Así que cada vez que un nuevo Fragmento fue creado, estaba usando el extra más reciente.

Moral de la historia – No hagas de tus fragmentos un miembro estático extra si planeas hacer múltiples instancias de ese fragmento.

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