BuildContext
- Flutter kursu
- Başlangıç
- Ders 13/99
- 4 dk
BuildContext'in widget'ın ağaçtaki konumu olduğunu öğrenirsin.
BuildContext
BuildContext, bir widget'ın widget ağacındaki konumunu temsil eder. build metoduna parametre olarak geçirilir ve widget'ın nerede bulunduğunu, kimin ebeveyni olduğunu belirtir. Theme, MediaQuery gibi atasal (ancestor) bilgilere ulaşmak için context kullanılır.
@override
Widget build(BuildContext context) {
final tema = Theme.of(context);
return Text('Selam', style: tema.textTheme.bodyLarge);
}Ancestor'lara erişim
Bir widget, atası (ancestor) olan widget'lardan veri almak için BuildContext'i kullanır. Theme.of(context), ağaçta yukarı çıkarak en yakın MaterialApp'i bulur ve tema bilgisini döndürür. Benzer şekilde MediaQuery.of(context) ekran boyutunu verir.
Widget build(BuildContext context) {
double genislik = MediaQuery.of(context).size.width;
return SizedBox(width: genislik, child: Text('Tam'));
}Uygulama Context kullanımlarını yazdır
main içinde üç satırı print ile yazdır: context konum, Theme tema ve MediaQuery boyut.
Başlangıç kodu
void main() {
// üç satır yazdır:
// context konum
// Theme tema
// MediaQuery boyut
}Örnek çözüm
void main() {
print('context konum');
print('Theme tema');
print('MediaQuery boyut');
}Beklenen çıktı
context konum Theme tema MediaQuery boyut
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 BuildContext neyi temsil eder?
- Widget'ın rengini
- Widget'ın boyutunu
- Widget'ın adını
- Widget'ın ağaçtaki konumu Doğru cevap
Açıklama: BuildContext, widget'ın widget ağacındaki konumunu temsil eder ve atasal verilere erişim sağlar.
2 Context ile temaya eriş
final tema = ____.of(context);
final tema = Theme.of(context);
Açıklama: Theme.of(context), ağaçtaki en yakın Material temasını döndürür.
3 BuildContext kavramları
| Kavram | Anlamı |
|---|---|
BuildContext |
Widget'ın ağaçtaki konumu |
context |
build metodunun parametresi |
ancestor |
Ağaçta yukarıdaki widget |
Theme.of(context) |
Atasal temaya erişim |