StatefulWidget nedir?
- Flutter kursu
- Başlangıç
- Ders 21/99
- 4 dk
StatefulWidget'ın zamanla değişebilen arayüzler için kullanıldığını öğrenirsin.
StatefulWidget nedir?
StatefulWidget, zamanla değişebilen arayüzler için kullanılan widget'tır. StatelessWidget'dan farklı olarak, bir State nesnesi içinde değişken veri saklar. Sayaç, checkbox, form gibi kullanıcı etkileşimiyle güncellenen görünümler StatefulWidget ile yazılır. Widget kendisi immutable kalsa da, State nesnesi mutable'dır.
class Sayac extends StatefulWidget {
const Sayac({super.key});
@override
State<Sayac> createState() => _SayacState();
}
class _SayacState extends State<Sayac> {
int deger = 0;
// ...
}Widget ve State
StatefulWidget iki parçadan oluşur: immutable Widget ve mutable State. Widget her yeniden inşada aynı kalır; State ise setState ile güncellenen değişkenleri barındırır. Flutter, widget değişse bile State'i koruyarak veri kaybını önler.
// Widget: immutable
class Sayac extends StatefulWidget {
const Sayac({super.key});
@override
State<Sayac> createState() => _SayacState();
}
// State: mutable
class _SayacState extends State<Sayac> {
int deger = 0; // değişebilir
}Uygulama Stateful bilgisi yazdır
main içinde iki satırı print ile yazdır: stateful degisir ve state mutable.
Başlangıç kodu
void main() {
// iki satır yazdır:
// stateful degisir
// state mutable
}Örnek çözüm
void main() {
print('stateful degisir');
print('state mutable');
}Beklenen çıktı
stateful degisir state mutable
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Hangi durumda StatefulWidget kullanılır?
- Yalnızca metin gösterileceği zaman
- Sunucudan veri hiç gelmeyecekse
- Ekrandaki görünüm hiç değişmediğinde
- Kullanıcı etkileşimiyle değişen veri olduğu zaman Doğru cevap
Açıklama: StatefulWidget, kullanıcı etkileşimiyle değişen veriler (sayaç, checkbox, form) için kullanılır; StatelessWidget statik görünümler içindir.
2 State sınıfı tanımı
class _SayacState extends ____<Sayac> {
int deger = 0;
}
class _SayacState extends State<Sayac> {
int deger = 0;
}
Açıklama: State sınıfı, widget'ın değişken verisini ve build metodunu barındırır.
3 StatefulWidget kavramları
| Kavram | Anlamı |
|---|---|
StatefulWidget |
Zamanla değişen arayüzler için |
mutable |
State nesnesi değişebilir |
State |
Değişken veriyi saklayan nesne |
immutable Widget |
Her yeniden inşada aynı kalır |