CodeBlanks Logo Icon CodeBlanks

StatefulWidget nedir?

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

main.dart
void main() {
  // iki satır yazdır:
  // stateful degisir
  // state mutable

}

Örnek çözüm

main.dart
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ı

Soru
class _SayacState extends ____&lt;Sayac&gt; {
  int deger = 0;
}
Cevap
class _SayacState extends State&lt;Sayac&gt; {
  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

Başlangıç bölümündeki tüm dersler