CodeBlanks Logo Icon CodeBlanks

Özet - Flutter iç yapı

Üç ağacı birleştirerek bir widget'ın yaşamını izlersin.

Özet - Flutter iç yapı

Bir widget oluşturulduğunda üç ağaç birlikte çalışır: widget_tree tanımı taşır, Element widget'ı render'a bağlar, RenderObject layout ve paint yapar. Widget rebuild edilince Element güncellenir, RenderObject yalnızca gerektiğinde yenilenir.

// Widget → Element → RenderObject
MaterialApp → _RawViewElement → RenderView
  Scaffold → _ScaffoldElement → RenderFlex
    Text → _TextElement → RenderParagraph

Uygulama Üç ağacı yazdır

main içinde üç ayrı print ile sırayla 'widget_tree', 'Element', 'RenderObject' yazdır.

Başlangıç kodu

main.dart
void main() {
  // 'widget_tree', 'Element', 'RenderObject' üç ayrı print ile yazdır
}

Örnek çözüm

main.dart
void main() {
  print('widget_tree');
  print('Element');
  print('RenderObject');
}

Beklenen çıktı

widget_tree
Element
RenderObject

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Bir widget rebuild edilince ne olur?

  • Tüm ağaçlar sıfırdan oluşturulur
  • Sadece RenderObject güncellenir
  • Element güncellenir, RenderObject yalnızca gerektiğinde yenilenir Doğru cevap
  • Uygulama yeniden başlatılır

Açıklama: Widget rebuild edilince yeni widget nesnesi eski Element ile karşılaştırılır ve Element update edilir; RenderObject yalnızca layout veya paint değiştiğinde yenilenir.

2 Üç ağacın sırası

Soru
final trees = ['widget_tree', '____', 'RenderObject'];
Cevap
final trees = ['widget_tree', 'Element', 'RenderObject'];

Açıklama: Yaşam döngüsü sırası widget_tree → Element → RenderObject'tir; BuildContext Element'in kendisidir, State ise StatefulWidget'a özeldir.

3 Üç ağaç eşleşmeleri

Kavram Anlamı
widget_tree Widget tanımı taşır
Element Widget ve render arasında
RenderObject Layout/paint nesnesi
rebuild State değişince tetiklenir

Uzman seviye bölümündeki tüm dersler