Sobes.tech
Junior — Middle

Is het mogelijk om dezelfde ViewModel te gebruiken voor het uitwisselen van gegevens tussen twee fragmenten tijdens navigatie?

sobes.tech AI

Antwoord van AI

Ja, het is mogelijk om dezelfde ViewModel te gebruiken voor het uitwisselen van gegevens tussen twee fragmenten tijdens de navigatie, als de ViewModel gekoppeld is aan een gemeenschappelijke levenscyclus-eigenaar, bijvoorbeeld een Activity. In dat geval krijgen beide fragmenten toegang tot dezelfde ViewModel, waardoor ze gegevens kunnen uitwisselen zonder ze direct te koppelen.

Voorbeeld:

// Verkrijg de ViewModel gekoppeld aan de Activity
val sharedViewModel = ViewModelProvider(requireActivity()).get(SharedViewModel::class.java)

// Fragment A stelt gegevens in
sharedViewModel.someData.value = "Hallo van Fragment A"

// Fragment B observeert de wijzigingen
sharedViewModel.someData.observe(viewLifecycleOwner) { data ->
    // Gebruik de ontvangen gegevens
}

Op deze manier fungeert de ViewModel als een gedeelde gegevensbron tussen de fragmenten, vereenvoudigt de communicatie en behoudt de gegevens bij het wijzigen van de configuratie.