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.