android - studio - fragment interaction listener
¿Qué hace exactamente FragmentManager y FragmentTransaction? (2)
Android FragmentManager
Un FragmentManager
gestiona Fragments
en Android, específicamente maneja transacciones entre fragmentos. Una transacción es una forma de agregar, reemplazar o eliminar fragmentos.
Android FragmentTransaction
Como se dijo antes, FragmentTransaction
nos brinda métodos para agregar, reemplazar o eliminar fragmentos en Android. Nos da una interfaz para interactuar con fragmentos.
fragmentTransaction.replace(R.id.fragment_container, mFeedFragment);
El método replace(int containerViewId, Fragment fragment)
reemplaza un objeto Fragment
existente del contenedor containerViewId
y agrega el Fragment fragment
fragmentTransaction.addToBackStack(null);
Este método, addToBackOfStack(String name)
, agrega esta transacción a la pila de respaldo, esto se puede usar para que los Fragments
sean recordados y puedan ser usados nuevamente por la Activity
fragmentTransaction.commit();
El método commit()
programa esta transacción, esto no es instantáneo; Está programado en el hilo principal que se realizará cuando el hilo esté listo.
http://developer.android.com/reference/android/app/FragmentTransaction.html
Tengo un código simple a continuación
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.fragment_container, mFeedFragment);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
¿Qué hacen estas líneas de código?
getFragmentManager()
Devuelve el FragmentManager para interactuar con los fragmentos asociados con esta actividad.
FragmentManager que se usa para crear transacciones para agregar, eliminar o reemplazar fragmentos.
fragmentManager.beginTransaction();
Inicie una serie de operaciones de edición en los Fragmentos asociados con este FragmentManager.
El objeto FragmentTransaction que se usará.
fragmentTransaction.replace(R.id.fragment_container, mFeedFragment);
Reemplaza el fragmento actual con mFeedFragment
en el diseño con el ID: R.id.fragment_container
fragmentTransaction.addToBackStack(null);
Agregue esta transacción a la pila posterior. Esto significa que la transacción será recordada después de que se haya comprometido, y revertirá su operación cuando más tarde salga de la pila.
Útil para el uso del botón de retorno para que la transacción se pueda retrotraer. El nombre del parámetro:
Es un nombre opcional para este estado de pila posterior, o nulo.
Consulte para obtener información la otra pregunta ¿Cuál es el significado de addToBackStack con parámetro null?
La última instrucción confirma la transacción y ejecuta todos los comandos.
Consulte la documentación de google para obtener más ayuda:
http://developer.android.com/reference/android/support/v4/app/FragmentActivity.html http://developer.android.com/reference/android/app/FragmentManager.html http://developer.android.com/reference/android/app/FragmentTransaction.html