Возврат на прошлый фрагмент из другого фрагмента

Всем доброго времени суток! Возник такой вопрос: У меня есть navigation из 3 фрагментоввведите сюда описание изображения

Переход по ним осуществляется через функцию:

findNavController().navigate(R.id.action_loginFragment_to_currencyFragment)

Проблема в том что если нажать кнопку Back(нижняя часть экрана) в RegisterFragment, то вернется LoginFragment, НОО!! почему то сработает observer LoginFragment, хотя я его даже не вызывал (специально)

        override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        email.doAfterTextChanged {
        logViewModel.isDataChanged(
            email.text.toString(),
            password.text.toString()
        )
    }

    password.doAfterTextChanged {
        logViewModel.isDataChanged(
            email.text.toString(),
            password.text.toString()
        )
    }

    logViewModel.loginForm.observe(activity as LifecycleOwner, Observer {
        val regState = it ?: return@Observer

        // disable login button unless both username / password is valid
        binding.buSign.isEnabled = regState.isOk

        if (regState.emailError != null) {
            email.error = getString(regState.emailError)
        }

        if (regState.passwordError != null) {
            password.error = getString(regState.passwordError)
        }
    })

И после этого переход из LoginFragment в CurrentFragment невозможен, т.к появляется ошибка, что Id (R.id.action_loginFragment_to_currencyFragment) не найден!!!

Если же сначала, как положено, зайти в RegisterFragment, заполнить данные и отправить их, то через функцию findNavController().navigate(R.id.action_registerFragment_to_loginFragment) все будет работать нормально.

Пожалуйста подскажите, почему так происходит? Как организовать правильный переход в прошлый фрагмент нажатием кнопки Back (или стрелкой назад в toolbar)? Заранее огромное спасибо


Ответы (0 шт):