0Pricing
Android Academy · Lekcja

Stan z remember i mutableStateOf

Przechowuj stan interfejsu w funkcjach composable

Stan z remember i mutableStateOf to bezpłatna lekcja Android Academy na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Android Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Android Academy zawiera 4 lekcji w sumie.

Czym jest stan?

Stan to dowolna wartość, która może zmieniać się w czasie i na którą interfejs powinien reagować — licznik, zawartość pola tekstowego albo informacja, czy pole wyboru jest zaznaczone. Gdy stan się zmienia, Compose ponownie rysuje interfejs.

mutableStateOf

mutableStateOf tworzy wartość obserwowalną. Gdy zostanie ona zmieniona, Compose wie, że trzeba ponownie uruchomić każdy composable, który ją odczytał.

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

Po co remember?

Composable mogą być uruchamiane wiele razy (rekompozycja). Jeśli stan jest tworzony przy każdym uruchomieniu, za każdym razem zostaje zresetowany. remember informuje Compose, aby zachować wartość między rekompozycjami.

val count = remember { mutableStateOf(0) }

Delegat by

Ciągłe odczytywanie i zapisywanie .value jest nieczytelne. Delegat właściwości Kotlin by pozwala traktować stan jak zwykłą zmienną.

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

Wymagane importy

Aby używać delegata by, należy zaimportować funkcje pomocnicze gettera i settera. Android Studio dodaje je automatycznie.

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

Composable licznika

Oto działający licznik. Dotknięcie przycisku zwiększa wartość count, a element Text aktualizuje się automatycznie.

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

Odczyt wywołuje aktualizację

Na tym polega magia: element Text odczytuje wartość count. Compose rejestruje ten odczyt, więc gdy count się zmieni, ponownie skomponuje tylko tę część i wyświetli nową wartość.

Stan może przechowywać dowolny typ

Stan służy nie tylko do przechowywania liczb. Można w nim przechowywać String, Boolean, listę albo własną klasę danych.

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

TextField ze stanem

Edytowalne pole tekstowe potrzebuje stanu przechowującego jego bieżącą wartość oraz wywołania zwrotnego, które ją aktualizuje.

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

Stan jest lokalny

Stan utworzony za pomocą remember znajduje się wewnątrz composable. Dwa wywołania Counter() mają własne, niezależne wartości licznika.

Pełny przykład

Kompletny ekran licznika łączący wszystkie elementy z tej lekcji.

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

Szybkie sprawdzenie

Dlaczego opakowujemy mutableStateOf w remember?

Podsumowanie

Podstawy stanu:

  • mutableStateOf tworzy wartość obserwowalną.
  • remember zachowuje ją między rekompozycjami.
  • by pozwala pominąć .value.
  • Odczyt stanu powoduje, że composable zaczyna obserwować jego zmiany.

Często zadawane pytania

Czy lekcja „Stan z remember i mutableStateOf” jest bezpłatna?

Tak — pełny tekst „Stan z remember i mutableStateOf” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Android Academy, przejdź na CoddyKit PRO. Kurs Android Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Stan z remember i mutableStateOf”?

Przechowuj stan interfejsu w funkcjach composable Ćwiczysz Android Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Android Academy?

Nie wymagamy żadnego doświadczenia. Android Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.

Ile czasu zajmuje lekcja „Stan z remember i mutableStateOf”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Android Academy?

Tak. Każda lekcja Android Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Stan z remember i mutableStateOf
  2. Wyjaśnienie rekompozycji
  3. Podnoszenie stanu
  4. rememberSaveable
← Powrót do Android Academy