Android Academy · Lektion

State med remember och mutableStateOf

Lagra UI-state i composables.

Lektion 1 av 413 steg

State med remember och mutableStateOf är en gratis lektion i Android Academy på CoddyKit. Detta är lektion 1 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för Android Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Android Academy innehåller totalt 4 lektioner.

Vad är state?

State är ett värde som kan ändras över tid och som användargränssnittet ska reagera på — till exempel en räknare, innehållet i ett textfält eller om en kryssruta är markerad. När state ändras ritar Compose om gränssnittet.

mutableStateOf

mutableStateOf skapar ett observerbart värde. När du skriver till det vet Compose att alla composables som läste värdet ska köras igen.

val count = mutableStateOf(0)
// read with count.value, write with count.value = 1

Varför remember?

Composables kan köras många gånger (recomposition). Om du skapar state vid varje körning återställs det varje gång. remember säger åt Compose att behålla värdet mellan recompositions.

val count = remember { mutableStateOf(0) }

Delegering med by

Det blir omständligt att läsa och skriva .value överallt. Kotlin-egenskapsdelegaten by låter dig behandla state som en vanlig variabel.

var count by remember { mutableStateOf(0) }
// now use count directly, no .value

Nödvändiga importer

För att använda delegaten by importerar du hjälpfunktionerna för getter och setter. Android Studio lägger till dessa automatiskt.

import androidx.compose.runtime.getValue
import androidx.compose.runtime.setValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember

En counter-composable

Här är en fungerande räknare. När du trycker på knappen ökas count, och Text uppdateras automatiskt.

@Composable
fun Counter() {
    var count by remember { mutableStateOf(0) }
    Button(onClick = { count++ }) {
        Text(text = "Count: $count")
    }
}

Läsning utlöser uppdatering

Det magiska är att Text läser count. Compose registrerar läsningen, så när count ändras görs bara den delen om och visar det nya värdet.

State kan innehålla alla typer

State är inte bara till för tal. Du kan lagra en String, en Boolean, en lista eller en egen dataklass.

var name by remember { mutableStateOf("") }
var isOn by remember { mutableStateOf(false) }

TextField med state

Ett redigerbart textfält behöver state för sitt aktuella värde samt en callback som uppdaterar det.

var text by remember { mutableStateOf("") }
TextField(
    value = text,
    onValueChange = { text = it }
)

State är lokalt

State som skapas med remember finns inuti composable-funktionen. Två anrop till Counter() har därför var sitt oberoende count-värde.

Fullständigt exempel

En komplett counterskärm som kombinerar allt från den här lektionen.

@Composable
fun CounterScreen() {
    var count by remember { mutableStateOf(0) }
    Column {
        Text(text = "You tapped $count times")
        Button(onClick = { count++ }) {
            Text(text = "Tap")
        }
    }
}

Snabbkontroll

Varför omsluter vi mutableStateOf med remember?

Sammanfattning

Grunderna i state:

  • mutableStateOf skapar ett observerbart värde.
  • remember behåller det mellan recompositions.
  • by gör att du kan utelämna .value.
  • När en composable läser state prenumererar den på ändringar i det.
Gratis att börja

Lär dig Kotlin med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
36
Lektioner
152

Vanliga frågor

Är lektionen ”State med remember och mutableStateOf” gratis?

Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Android Academy, inklusive ”State med remember och mutableStateOf”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i Android Academy innehåller totalt 4 lektioner.

Vad lär jag mig i ”State med remember och mutableStateOf”?

Lagra UI-state i composables. Ni övar på Android Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Android Academy?

Du behöver inga förkunskaper. Utbildningen i Android Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 1 av 4.

Hur lång tid tar lektionen ”State med remember och mutableStateOf”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Android Academy-lektionen?

Ja. Varje Android Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. State med remember och mutableStateOf
  2. Recomposition förklarat
  3. State-hoisting
  4. rememberSaveable
← Tillbaka till Android Academy