Cómo reemplazar Fragment dentro de ViewPager, usando PagerAdapter?

Mi problema

Estoy utilizando un ViewPager para mostrar fragmentos dentro de una FragmentActivity . ViewPager obtiene fragmentos del FragmentPagerAdapter adjunto.

 mViewPager = (ViewPager) findViewById(R.id.view_pager); mAdapter = new HomePagerAdapter(getSupportFragmentManager()); mViewPager.setAdapter(mAdapter); 

Supongamos que ViewPager tiene 3 fragmentos para mostrar: Fragment1 , Fragment2 , Fragment3 . Fragment1 es un fragmento de cuadrícula y muestra una cuadrícula. Fragment2 y Fragment3 tienen su propio contenido para mostrar. Cuando el uso pasa por la pantalla, ViewPager mostrará el siguiente fragmento – Fragment2 . Y así.

¿Lo que quiero?

Lo que quiero es que, cuando se hace clic en un elemento de la cuadrícula (que se muestra en Fragment1 ), Fragment1 debe ser reemplazado por otro fragmento, por ejemplo Fragment4 (este fragmento es diferente y no es devuelto por el adaptador adjunto). El usuario trabajará en Fragment4 y después de ButtonBack haga clic (sólo el botón iside Fragment4 ), Fragment1 con la cuadrícula se debe mostrar de nuevo. Mientras tanto ViewPager debe comportarse de la misma es decir, en el golpe, el siguiente fragmento (en nuestro caso Fragment2 ) se mostrará.

Así que sólo quiero obtener el mismo comportamiento que en el ejemplo: http://developer.android.com/training/basics/fragments/fragment-ui.html#Replace

Mi pregunta

Entonces, ¿es posible lograr esto? Si es así, ¿cómo? Agradecería mucho su ayuda. Alex. PS Lo siento por mi inglés 🙂

Una forma de lograr esto es agregando otra FragmentActivity que muestra su Fragment4 . Utilice Intent para iniciar esta actividad y la posición de posición de rejilla enviada u otros datos en Extra .

Al pulsar el botón secundario, esta actividad finalizará y se mostrará la última actividad con el buscapersonas.

[EDIT] Respuesta antigua. Mejores soluciones se ofrecen en otras respuestas,

He hecho un pequeño ejemplo que muestra cómo lograrlo:

https://github.com/danilao/fragments-viewpager-example

Creo que el punto es utilizar otro fragmento como un contenedor.

Usted tendrá que hacer la transacción de fragmentos y añadir el fragmento existente en backstack. He creado un proyecto de muestra para mostrarte cómo hacerlo.

El código no está bien ajustado, lo he creado para mostrarte cómo hacerlo.

https://drive.google.com/folderview?id=0BxHClVwHSqq5dVRvT1Qyd0hYN0k&usp=sharing

Pero tenga en cuenta que incluso si pulsa de nuevo en cualquiera de la pantalla de paginador de vista, el fragmento anterior termina mostrando ya que es la misma actividad.

SI este comportamiento no es esperado, entonces debería considerar tener múltiples actividades en su lugar (como el diseño de tabulación)

  • Diferencia entre FragmentPagerAdapter y FragmentStatePagerAdapter
  • No se puede actualizar / actualizar listview en un fragmento de otro fragmento en ViewPager
  • Java.lang.InstantiationException: no se puede instanciar clase ... sin constructor vacío
  • Fragmento en ViewPager, no se puede obtener la instancia de fragmento actual
  • Método de Fragmento tabulado de llamada de la actividad
  • Android que consigue el fragmento que está en FragmentPagerAdapter
  • FragmentPagerAdapter sólo existe en Android.Support.V4.App (y no en Android.App)
  • Cómo quitar el fragmento de FragmentPagerAdapter?
  • ¿Cuándo se llama a getItem de FragmentPagerAdapter?
  • Fragmentos de Viewpager y de Sherlock. ¿Cómo hacer somethng dentro de fragmento de FragmentActivity?
  • ¿Cómo puedo pasar una variable a través de FragmentPagerAdapter a un fragmento?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.