Cómo mostrar un fragmento dentro de un contenedor de fragmento específico en Android
Cuando quiero cambiar el fragmento dependiendo del elemento seleccionado, utilizo:
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, fragment).commit();
Pero ahora quiero hacerlo de manera que pueda mostrar simplemente los diferentes fragmentos en lugar de crear nuevos cada vez que los vuelva a seleccionar, así que encontré .show
en lugar de .replace
, pero el problema con .show
es que no puedo declarar dónde quiero que se muestre ese fragmento… o tal vez lo estoy haciendo mal:
getSupportFragmentManager().beginTransaction().show(fragment).commit();
davy.ai
Para mostrar diferentes fragmentos en lugar de crear nuevos cada vez que los volvemos a seleccionar, podemos usar el método
.show
. Sin embargo, el problema de utilizar.show
es que no podemos declarar dónde queremos que se muestre ese fragmento, a diferencia del métodoreplace
.Para especificar dónde queremos que se muestre el fragmento, podemos combinar ambos métodos de la siguiente manera:
Este código verifica si el fragmento ya está agregado y, si lo está, lo muestra. Si no está agregado, lo añade al
fragment_container
y realiza la transacción. De esta manera, podemos mostrar fragmentos existentes sin crear nuevos y asegurarnos de que se muestren donde queremos que estén.