Хотя ваш ответ мог бы стать обходным путем, я надеялся на решение, которое автоматизирует этот процесс. Это потребует отслеживания фрагментов, чтобы знать, какое действие выполнить. С этим я потеряю преимущества Навигационной Арки.

я есть следующая активность

class MainActivity : AppCompatActivity() {

private lateinit var drawerLayout: androidx.drawerlayout.widget.DrawerLayout

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.main_activity)

    drawerLayout = drawer_layout

    val navController = Navigation.findNavController(this, R.id.fragment_main_navHost)

    setSupportActionBar(toolbar)

    NavigationUI.setupActionBarWithNavController(this, navController, drawerLayout)
    navView_main.setupWithNavController(navController)
}

override fun onSupportNavigateUp(): Boolean {
    return NavigationUI.navigateUp(drawerLayout,
        Navigation.findNavController(this, R.id.fragment_main_navHost))
}

override fun onBackPressed() {
    if (drawerLayout.isDrawerOpen(GravityCompat.START)) {
        drawerLayout.closeDrawer(GravityCompat.START)
    } else {
        super.onBackPressed()
    }
}

который, как вы можете видеть, связан с графиком навигации, а я использую навигационный ящик. Когда я перемещаюсь по элементам в ящике, я хочу сохранить значок гамбургера и изменить его на кнопку «вверх / назад» только тогда, когда я нажимаю на элемент в фрагменте или всплывающем окне, например, и гарантирую, что поведение системы отражает то, что пользователь ожидает на основе отображаемого значка. Это возможно

Ответы на вопрос(1)

Ваш ответ на вопрос