Sobes.tech
Junior — Middle

Můžeš vyjmenovat existující typy stavu v Jetpack Compose a vysvětlit jejich rozdíly?

sobes.tech AI

Odpověď od AI

V Jetpack Compose existují různé typy stavu, které pomáhají řídit změny UI:

  • MutableState<T> — základní typ stavu, který ukládá hodnotu a informuje Compose o jejích změnách, aby překreslil UI.

  • remember — funkce, která uchovává stav mezi rekonstrukcemi v rámci jednoho volání funkce.

  • rememberSaveable — rozšíření remember, které uchovává stav nejen při rekonstrukci, ale i při změnách konfigurace (například otočení obrazovky), pomocí mechanismu ukládání stavu.

  • StateFlow / LiveData — reaktivní datové proudy, které lze použít jako zdroj stavu v Compose přes adaptéry.

Rozdíly:

  • remember uchovává stav pouze během života kompozice.
  • rememberSaveable navíc uchovává stav při znovuvytvoření aktivity.
  • MutableState je kontejner pro hodnotu, kterou Compose sleduje.

Příklad:

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