Возврат на прошлый фрагмент из другого фрагмента
Всем доброго времени суток! Возник такой вопрос: У меня есть 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)? Заранее огромное спасибо