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


¿Ciclo de vida de un ViewPager y BackStack reemplazados?

Estoy realmente desordenado con el ciclo de vida de ViewPager de Android, y estoy empezando a pensar que hay algo mal en la estructura de mi aplicación. Así que me gustaría una confirmación si puedo hacer lo siguiente:

  • Tengo una aplicación que muestra algunas pestañas. Una de esas pestañas muestra un ViewPager, en el que hay dos ListFragments. Esos ListFragments se crean en el evento onCreate del ViewPager.
  • Al hacer clic en un elemento de uno de los ListFragments, está reemplazando todo el ViewPagerFragment por un fragmento diferente (que es otro un ListFrament).

Aquí está el código que utilizo para reemplazar ViewPager con el nuevo ListFragment

FragmentManager fm = getFragmentManager(); android.support.v4.app.FragmentTransaction ft = fm.beginTransaction(); ft.replace(R.id.container, new RequestForm(requestsList.get(itemIndex))); ft.addToBackStack(null); ft.commit(); 

Desde allí, todo funciona bien. Pero, si el usuario hace clic en el botón Atrás, obtengo la siguiente situación:

  • ViewPager está recargando bien (desde onCreateView), pero el ListFragment dentro no aparecerá. Parece que el objeto de ListFragment sigue vivo, pero parece que perdieron su vista, y onCreateView no está llamado a recrearlo (porque el objeto no durmió mientras ViewPager estaba fuera).

No voy a publicar más código aquí por ahora, porque mi intención es saber si lo que estoy tratando de hacer está bien o no en una forma de pensar de Android. ¿Tendré que luchar contra Android SDK para archivar lo que quiero hacer?

One Solution collect form web for “¿Ciclo de vida de un ViewPager y BackStack reemplazados?”

Bueno, como puedes ver, no soy un usuario de Android (sé mucho más acerca de la interfaz de usuario en iOS). Por eso estaba confundido.

Después de buscar aplicaciones diferentes, descubrí que Gmail y Google Play tienen una navegación que se parece un poco a la mía (reemplazando un ViewPager por un nuevo fragmento, sin crear una nueva actividad).

Y para mi problema, no era un problema de estructura. Cuando crea el FragmentStatePagerAdapter, asegúrese de usar getChildFragmentManager () y no getFragmentManager ()!

 ViewPagerAdapter adapter = new ViewPagerAdapter(getChildFragmentManager()); 
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.