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 = 1Po 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 .valueWymagane 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.rememberComposable 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:
mutableStateOftworzy wartość obserwowalną.rememberzachowuje ją między rekompozycjami.bypozwala 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
- Stan z remember i mutableStateOf
- Wyjaśnienie rekompozycji
- Podnoszenie stanu
- rememberSaveable