Estou usando dados ativos no meu aplicativo para todas as chamadas de rede e manipulação de respostas.
Em um dos cenários, minha visão do reciclador está carregando alguns dados no seu suporte onBind
e a resposta está atualizando a interface do usuário. Para fazer isso, eu tenho que fornecer um lifecycleOwner
para o observador.
Como a exibição do reciclador não possui proprietário de ciclo de vida próprio, estou usando o fragmento pai para isso, parentFragment.viewlifecycleOwner
mas, de alguma forma, está dando um erro.
Como um detentor de exibição pode ter sua instância quando o fragmento pai não está tendo sua instância?
viewModel.responseState.observe(parentFragment.viewLifecycleOwner, Observer {
updateUI(it)
})
Exceção fatal: java.lang.IllegalStateException: Não é possível acessar o LifecycleOwner do Fragment View quando getView () é nulo, ou seja, antes de onCreateView () ou depois de onDestroyView ()
fonte
Respostas:
A solução para mim foi simplificada. Estou usando observadores separados - um para a rede que está usando o Lifecycleowner da atividade principal (ou apenas de qualquer atividade) e outro para a exibição de fragmentos (modelo de exibição de modelo).
fonte
Na documentação de getViewLifecycleOwner ( ), acho que não posso explicar melhor:
fonte
A solução, como seu comentário, é garantir que a exibição do fragmento não seja nula. Isso aconteceu comigo com um fragmento dentro de um ViewPager.
fonte