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í.
- Eliminar Elemento + Desplazarse a Siguiente en Android ViewPager
- ViewPager dentro de fragmento, cómo conservar el estado?
- Implementación de MVP con Dagger en un FragmentPagerAdapter
- FragmentPagerAdapter dentro de Fragment
- Reordenar páginas en FragmentStatePagerAdapter usando getItemPosition (objeto objeto)
¿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 🙂
- Cambiar las pestañas que no funcionan al hacer clic en las pestañas con PagerSlidingTabStrips
- Fragmento en ViewPager devuelve objeto vacío onResume
- Haga clic en la pestaña de Android
- FragmentPagerAdapter notifyDataSetChanged no funciona
- Android FragmentStatePagerAdapter
- Cambia dinámicamente el título de un android.support.v4.view.PagerTitleStrip
- ¿Cómo uso FragmentPagerAdapter para tener pestañas con contenido diferente?
- Android - Interfaces y clases internas
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)