Necesito una segunda actividad con un gráfico de navegación y tengo un botón de retorno en la barra de herramientas a la primera actividad que también contiene un gráfico de navegación.
En mi segunda actividad tengo onSupportNavigateUp y setupActionBarWithNavController al ingresar los fragmentos si aparece el botón de flecha hacia atrás pero en la actividad no.
Intente agregar setHomeButtonEnabled y setDisplayHomeAsUpEnabled tanto en la actividad como en el fragmento y si aparece el botón atrás, pero cuando ingreso algún fragmento al frente y vuelvo al fragmento startDestination desaparece el botón atrás
Solo necesito mantener el botón de nuevo en la actividad y resolver mi problema
Puede hacerlo especificando un setFallbackOnNavigateUpListener:
private fun setupToolbar() { val navController = findNavController(R.id.nav_host_fragment) val appBarConfiguration = AppBarConfiguration.Builder() .setFallbackOnNavigateUpListener { onNavigateUp() } .build() dataBinding.toolbar.apply { setupWithNavController(navController, appBarConfiguration) } }Y luego haz lo que quieras en la actividad:
override fun onNavigateUp(): Boolean { finish() return true }No puede, la actividad tiene sus propias barras de herramientas y, en su caso, tienen dos NavControllers diferentes. Entonces, su segunda actividad administre el botón NavUp para su fragmento y cuando comience el fragmento de destino, el NavUpButton (Backbutton) desaparecerá porque no tiene ningún destino atrás. Y si muestra programáticamente el botón NavUp en el destino de inicio de esa (segunda actividad) y administra onClick e inicia la primera actividad que siempre va al destino de inicio del fragmento de la primera actividad porque tiene su propio controlador de navegación.
El problema es que la interfaz de usuario de navegación no funciona así. El mejor enfoque es usar solo una actividad con múltiples fragmentos. Y use cualquier otro enfoque para resolver su problema dentro del mismo controlador de navegación.
Agregue la función setHomeButtonEnabled . a tu acción de retorno. Si regresa con el botón, agréguelo a onClick o con backPress, anule backPress.
Con esta solución: habilitará su botón cuando intente devolver su destino de inicio.