Junior — Middle
Milyen Jetpack ViewModel komponenseket használsz az adatok és az UI állapotának kezelésére?
sobes.tech MI
Válasz az MI-től
A Jetpack ViewModel-ben az adatok és az UI állapotának kezelése általában a következő komponensek használatával történik:
-
LiveData — megfigyelhető adatok, amelyek automatikusan frissítik a UI-t a változáskor. Lehetővé teszi a reaktív megközelítést.
-
MutableLiveData — a LiveData módosítható változata, amelyet a ViewModel belsejében használnak az adatok frissítésére.
-
StateFlow / SharedFlow (a Kotlin Coroutines-ból) — modern alternatívák a LiveData-ra az állapot és események kezelésére coroutine támogatással.
-
SavedStateHandle — lehetővé teszi a ViewModel állapotának mentését és visszaállítását az UI újraalkotásakor, például képernyőforgatáskor.
Példa a LiveData használatára a ViewModel-ben:
class MyViewModel : ViewModel() {
private val _text = MutableLiveData<String>()
val text: LiveData<String> = _text
fun updateText(newText: String) {
_text.value = newText
}
}