Mini apuntes de como llamar un DialogFragment usando el componente Navigation Component de Google Arquitechure usando Kotlin.
Llamar DialogFragment
Despues de añadir el DialogFragment en el nav_graph.xml con id fragment_fist_detail_fragment
private fun showDialog() {
val currentNav = findNavController().currentDestination?.id
if (currentNav == R.id.detailDialogFragment) return
findNavController().navigate(R.id.fragment_fist_detail_fragment)
}
showDialog()
Llamar DialogFragment con parámetros
En nav_graph.xml setear los argumentos a recibir, aquí un ejemplo con un argumento de texto
<dialog
android:id="@+id/detailDialogFragment"
android:name="com.sample.DetailDialogFragment"
android:label="DetailDialogFragment" >
<argument
android:name="title"
app:argType="string"
android:defaultValue="Dialog title" />
</dialog>
con eso se al hacer build nos creará los Directions correspondientes que le podemos asignar el valor al parámetro
val action = FirstFragmentDirections.actionNavFirstFragmentToDetailDialogFragment("Hello World")
findNavController().navigate(action)