1
resposta

Não volta,mesmo usando o navigation.

Estou fazendo um código a parte seguindo as aulas e meu código não funciona como esperado. Eu configuro a ação do navation dentro de um observer e ele funciona mas quando eu tento voltar para a tela anterior ele não volta. Creio que é por causa do observer, mas não entendo o motivo. Queria que funcionasse pois o observer serve para validar o login e não vejo outro jeito de fazer isso.

Meu código:

  private fun configureObserver(view: View) {
        viewModel.login.observe(viewLifecycleOwner, Observer { loginStade ->
            when (loginStade) {
                is LoginStade.ErroLogin -> {
                    mensageRegistration(view, loginStade.mensage)
                }
                is LoginStade.SuccessLogin -> {
                    if(loginStade.user.seg.equals(GetChaves.CHAVES_LOGIN.nutri)){
                        controller?.navigate(R.id.action_login_to_lista_pacientes)
                    }
                    else if (loginStade.user.seg.equals(GetChaves.CHAVES_LOGIN.user)) {
                        controller?.navigate(R.id.action_login_to_menu)
                    }
                }
            }
        })
    }
1 resposta

Oi Agatha, tudo bem? Apenas com a ação de voltar é estranho acontecer isso, pois o seu observer ele deve ser ajustado apenas quando vc mudar o state mesmo... Se for possível compartilhar o seu projeto via GitHub, eu posso tentar investigar o problema, o que acha?

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software