CodeBlanks Logo Icon CodeBlanks

Widget ağacı

Widget'ların iç içe bir ağaç oluşturduğunu öğrenirsin.

Widget ağacı

Widget'lar iç içe geçerek bir ağaç (widget tree) oluşturur. Her widget'ın bir ebeveyni (parent) vardır; kök widget hariç. Bir widget'ın altında yer alan widget'a child denir. Flutter bu ağacı yürüyerek ekrandaki pikselleri üretir.

MaterialApp(
  home: Scaffold(
    body: Center(
      child: Text('Ağaçta'),
    ),
  ),
)

parent ve child ilişkisi

Parent widget, child widget'ı saran dış widget'tır. Center, Text widget'ını sardığında Center parent, Text child olur. Bazı widget'lar tek child alır (Center, Padding); bazıları birden çok child alır (Column, Row).

Center(
  child: Text('ben child'),
)
// Center: parent
// Text: child

Uygulama İlişkiyi döndür

iliski adında bir fonksiyon yaz: bir String s parametresi alsın. s == 'Center' ise 'parent', s == 'Text' ise 'child', değilse 'unknown' döndürsün. main içinde iliski('Center') ve iliski('Text') çağrılarını print ile yazdır.

Başlangıç kodu

main.dart
void main() {
  // iliski('Center') ve iliski('Text') çağrılarını print ile yazdır

}

// iliski fonksiyonunu tanımla
// 'Center' dönerse 'parent', 'Text' dönerse 'child', değilse 'unknown'

Örnek çözüm

main.dart
void main() {
  print(iliski('Center'));
  print(iliski('Text'));
}

String iliski(String s) {
  if (s == 'Center') return 'parent';
  if (s == 'Text') return 'child';
  return 'unknown';
}

Beklenen çıktı

parent
child

Soru ve cevaplar

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

1 Bir widget'ın altında yer alan widget'a ne denir?

  • root
  • sibling
  • child Doğru cevap
  • parent

Açıklama: Parent'ın içindeki widget'a child denir; parent child'ı sarar.

2 Parent-child bağla

Soru
Center(
  ____: Text('içte'),
)
Cevap
Center(
  child: Text('içte'),
)

Açıklama: Center widget'ı child parametresiyle bir alt widget alır.

3 Ağaç terimleri

Kavram Anlamı
widget tree Widget'ların iç içe yapısı
parent Child'ı saran dış widget
child Parent'ın içindeki widget
root widget Ağacın en üstteki widget'ı

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