Tengo un fragmento dentro de una actividad grupal y quiero reemplazarlo con otro fragmento:
FragmentTransaction ft = getActivity().getFragmentManager().beginTransaction();
SectionDescriptionFragment bdf = new SectionDescriptionFragment();
ft.replace(R.id.book_description_fragment, bdf);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
ft.addToBackStack(null);
ft.commit();
Funciona bien cuando se realiza como un proyecto separado sin usar el grupo de actividades, todo funciona bien en log cat ya que el control entra en getview (), pero no se ve ninguna vista, ni siquiera surge ninguna excepción, quiero que el fragmento de detalles del libro ser reemplazado por el fragmento de detalle de sección.
El xml del fragmento de detalles del libro tiene id. Book_description_fragment y xml para el fragmento de descripción de sección tiene id. Section_description_fragment.
El código anterior está en el método onClick de un elemento, quiero que cuando el usuario toque un elemento en la vista de desplazamiento horizontal, el fragmento cambie.
fuente
onCreateView()
. Por lo tanto, como puede suponer, cualquier referencia al fragmento se pierde realmente en el nivel de vista. Por lo tanto, básicamente no puede reemplazar un fragmento, sino que puede eliminar manualmente las vistas ahora presentes en el contenedor y colocar un fragmento allí si es necesario.Por favor vea esta pregunta
Solo puede reemplazar un " fragmento agregado dinámicamente ".
Entonces, si desea agregar un fragmento dinámico, vea este ejemplo.
fuente
He hecho una idea fundamental con EL método perfecto para administrar el reemplazo de fragmentos y el ciclo de vida .
Solo reemplaza el fragmento actual por uno nuevo, si no es el mismo y si no está en la pila (en este caso, lo abrirá).
Contiene varias opciones como si quisieras que el fragmento se guarde en la pila.
=> Ver Gist aquí
Con esta y una sola Actividad, es posible que desee agregar esto a su actividad:
fuente
Use el siguiente código en android.support.v4
fuente
Use este código usando v4
fuente
Espero que te esté yendo bien. Cuando comencé a trabajar,
Android Fragments
también tuve el mismo problema y luego leí acerca de 1- Cómo cambiar el fragmento con otro. 2- Cómo agregar un fragmento siFragment container
no tiene ningún fragmento.luego, después de un poco de I + D, creé una función que me ayuda en muchos proyectos hasta ahora y todavía estoy usando esta función simple.
disfruta tu tiempo de código :)
fuente
Use ViewPager. Es trabajo para mi.
fuente
Puedes usar este código
o puede usar este código de uso
fuente
En kotlin puedes hacer:
fuente
puede usar código simple, su trabajo para la transacción
fuente
Cambio el fragmento dinámicamente en código de una sola línea.
Funciona en cualquier versión de SDK y androidx
. Utilizo la navegación como
BottomNavigationView
fuente