working with tutorial studio start llamar inside fragments examples desde android android-fragments android-viewpager android-listfragment android-nested-fragment

android - with - ¿Ciclo de vida de un ViewPager y BackStack reemplazados?



start fragment (1)

Estoy realmente mal 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. Entonces 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 de ViewPager.
  • Cuando hace clic en un elemento en uno de los ListFragments, está reemplazando el ViewPagerFragment completo 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();

A partir de ahí, todo está funcionando bien. Pero, si el usuario hace clic en el botón Atrás, aparece la siguiente situación:

  • ViewPager está recargando bien (desde onCreateView), pero el ListFragment dentro no se mostrará. Parece que el objeto de ListFragment todavía está activo, pero parece que han perdido su vista y onCreateView no se llama para volver a crearlo (porque el objeto no se había dormido mientras ViewPager estaba fuera).

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


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

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

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

ViewPagerAdapter adapter = new ViewPagerAdapter(getChildFragmentManager());