Junior — Middle
É possível usar a mesma ViewModel para trocar dados entre dois fragmentos durante a navegação?
sobes.tech IA
Resposta da IA
Sim, é possível usar a mesma ViewModel para trocar dados entre dois fragmentos durante a navegação, se a ViewModel estiver vinculada a um proprietário de ciclo de vida comum, por exemplo, a uma Activity. Nesse caso, ambos os fragmentos acessam a mesma ViewModel, permitindo a troca de dados sem precisar vinculá-los diretamente.
Exemplo:
// Obter a ViewModel vinculada à Activity
val sharedViewModel = ViewModelProvider(requireActivity()).get(SharedViewModel::class.java)
// Fragmento A define os dados
sharedViewModel.someData.value = "Olá do Fragmento A"
// Fragmento B observa as mudanças
sharedViewModel.someData.observe(viewLifecycleOwner) { data ->
// Usar os dados recebidos
}
Assim, a ViewModel atua como uma fonte comum de dados entre os fragmentos, simplificando a comunicação e mantendo os dados ao alterar a configuração.