bazı widgetlara child eklerken bazılarına eklemiyoruz sebebi ne açıklayabilecek var mı
child mantığı
samil Merhaba hocam,
örnek vererek gidelim isterseniz
örneğin Icon() wifget’ına child eklemiyoruz çünkü bizden tek bir geri dönüş bekliyoruz. icon. Veya Text() widgeti. Buda tek bir sonuç bekliyor. Ama container() widgetini düşününü. Sizin için ekranda bir alan kaplıyor ve buraya ne koyarsan koy, karar senin diyor.İşte burada devreye child giriyor. Örnek olarak: Container(childer:Text(“flutter forum”) yazdığınızda diyorsunuz ki benim yazdığım text Conatiner’ın çocuğu.(child) ama flutter forum yazısı sadece bir metin ve text ile ekrana yazdırılmış. Özetle durum bu
Flutter cevap için teşekkürler dediğinizi anladım. Bazı wigetlar’ın içinde widget ekliyoruz mesela container widget’ına row ekleyeceğiz bunun için de child kullanıyoruz anladığım kadarıyla. Yani child bir widget’ın içine başka bir widget eklemek için kullanılır diyebiliriz miyiz? Ama bildiğim kadarıyla bazen de widget’ın içine widget eklemek için child kullanmadan da yapabiliyoruz şu an örnek yazamadım bunun için ama anlamışsınızdır umarım
Ben de kendimce bir ekleme yapayım. Aslında UI oluştururken widget ağacı oluşturuyoruz ya, ağacı aşağı doğru dallandırmak için child kullanıyoruz. Basitçe bir child, bir dal demek gibi düşünebiliriz. Bazı Widgetlar birden fazla alt dala sahip olabiliyor, o yüzden child’ın çoğulu children veriliyor. Örn: row,column,stack.. Flutter Inspectoru sık kullanmaya başlarda alışmak gerekiyor, orada yapı kendini gösteriyor.
KodPlanet teşekkür ederim. benim anlamadığım kısım şu; bir widget’a widget eklerken bazen child diyerek ekliyoruz bazen ise o widget’ın parametresini kullanarak ekliyoruz. Mesela Scaffold(appBar: AppBar(title: Text(“örnek”)),
“AppBar” bir widget bunu Scaffold widget’ına eklerken “appBar” parametresi kullandık, “appBar” parametresi yerine neden child demedik? bu da bir dallanma değil mi sonuçta. Benim anladığım kadarıyla bunu o widget’ın constructor’ını yazanlar o şekilde yapmış. Constructorda (AppBar child) yani AppBar widget’ı türünden child adlı bir parametre diye tanımlasalardı orada appBar: AppBar yerine child: AppBar kullanacaktık. Doğru mu düşünüyorum?
Flutter hocam şimdi aklıma bir soru daha takıldı Scaffold’un içinde appBar: AppBar() yazıyoruz. Ben Scaffold sınıfının dosyasına baktım constructor’ında evet appBar diye bir parametre var ve bunu this.appBar diyerek sınıftaki appBar’a eşitliyor mantık olarak ama ben bu appBar’ı bulamadım ve bu appBar’ın değişkenin türü ne olmalı biraz kafam yandı orda yani tam olarak oturtturamadım kafamda mantığını
samil appbar bir tür değil o da bir widget. Hazır bir widget. Text gibi listview gibi. Scaffold içinde appbar: dediğimiz zaman bizden appbar değil bir widget bekliyor yine. Child gibi. Scaffold bunu ayrı alıyor ki ne gönderirsen gönder ben bunu sayfanın en başına koyacam diyor. İster Appbar gönder ister Stack ister Container gönder. Appbar widgeti hazır kullanım. Kendiniz de bi container içine row atıp içine text Iconbutton vs atarak appbar oluşturabilirsiniz. Scaffold sadece sayfanın başına koymakda kolaylık olsun diye appbar, body vs şeklinde ayırmış. Temelde hepasi widget.
Yani bir düzeltme yapayım. Scaffold Appbar türünde child beklemiyor. Widget türünde appbar bekliyor.
Bence böyle konuların tartışılması faydalı oluyor
@HseyinAkkaya @samil
Ellerinize sağlık
HseyinAkkaya şimdi anladım teşekkürler