Sobes.tech
Junior — Middle

Môžeš vymenovať existujúce typy stavu v Jetpack Compose a vysvetliť ich rozdiely?

sobes.tech AI

Odpoveď od AI

V Jetpack Compose existujú rôzne typy stavu, ktoré pomáhajú pri správe zmien UI:

  • MutableState<T> — základný typ stavu, ktorý uchováva hodnotu a informuje Compose o jej zmenách, aby mohol prekresliť UI.

  • remember — funkcia, ktorá zachováva stav medzi rekonštrukciami v rámci jedného volania funkcie.

  • rememberSaveable — rozšírenie remember, ktoré uchováva stav nielen počas rekonštrukcie, ale aj pri zmenách konfigurácie (napríklad otočenie obrazovky), pomocou mechanizmu ukladania stavu.

  • StateFlow / LiveData — reaktívne dátové toky, ktoré možno použiť ako zdroj stavu v Compose cez adaptér.

Rozdiely:

  • remember uchováva stav iba počas života kompozície.
  • rememberSaveable navyše uchováva stav pri znovu vytvorení aktivity.
  • MutableState je kontajner pre hodnotu, ktorú Compose sleduje.

Príklad:

var count by rememberSaveable { mutableStateOf(0) }
Button(onClick = { count++ }) {
    Text("Stlačené $count krát")
}