Özel widget nedir?
- Flutter kursu
- Orta seviye
- Ders 71/99
- 4 dk
Kendi widget'ını StatelessWidget olarak yazmayı öğrenirsin.
Özel widget nedir?
Özel widget, senin tanımladığın bir StatelessWidget alt sınıfıdır. build metodunu geçersiz kılarak istediğin arayüzü çizersin. Tek sefer yazıp birçok yerde kullanırsın.
class Baslik extends StatelessWidget {
const Baslik({super.key});
@override
Widget build(BuildContext context) {
return const Text('Merhaba');
}
}const kurucu eklemek, widget'ın widget ağacında sabit olarak yer almasını sağlar ve performansı artırır.
build metodu ve Widget dönüşü
build metodu bir Widget döndürmek zorundadır. Flutter bu widget'ı ekrana çizer. Metot imzası Widget build(BuildContext context) biçimindedir; context widget ağacındaki konumu temsil eder.
@override
Widget build(BuildContext context) {
return const Padding(
padding: EdgeInsets.all(8),
child: Text('Selam'),
);
}Döndürülen widget basit bir Text olabileceği gibi, iç içe birçok widget'ı kapsayan bir ağaç da olabilir.
Uygulama BaslikWidget tanımla
BaslikWidget adında bir StatelessWidget tanımla. const kurucu ekle ve build metodu Text('Merhaba') döndürsün. main içinde 'hazir' yazdır.
Başlangıç kodu
import 'package:flutter/widgets.dart';
// BaslikWidget adında StatelessWidget tanımla
// const constructor ekle
// build metodu bir Text widget'ı döndürsün
void main() {
// 'hazir' yazdır
}Örnek çözüm
import 'package:flutter/widgets.dart';
class BaslikWidget extends StatelessWidget {
const BaslikWidget({super.key});
@override
Widget build(BuildContext context) {
return const Text('Merhaba');
}
}
void main() {
print('hazir');
}Beklenen çıktı
hazir
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Özel bir widget tanımlamanın doğru yolu nedir?
- http.get çağrısı yapmak
- Bir Future döndüren fonksiyon yazmak
- StatelessWidget'ı extend edip build metodunu geçersiz kılmak Doğru cevap
- sqflite tablosu oluşturmak
Açıklama: Özel widget, StatelessWidget'ı extend eden ve build metodunu geçersiz kılan bir sınıftır. Future fonksiyon async işlemler içindir, sqflate veritabanıdır, http.get ağ isteğidir; bunlar widget tanımı değildir.
2 StatelessWidget'ı extend et
class Baslik ____ {
const Baslik({super.key});
@override
Widget build(BuildContext context) {
return const Text('Merhaba');
}
}
class Baslik extends StatelessWidget {
const Baslik({super.key});
@override
Widget build(BuildContext context) {
return const Text('Merhaba');
}
}
Açıklama: Özel widget StatelessWidget'ı extend eder. StatefulWidget stateful widget'lar içindir, implements Widget yanlış bir arayüzdür, Container bir widget'tır extend edilemez.
3 Özel widget parçaları
| Kavram | Anlamı |
|---|---|
class Baslik |
sınıf bildirimi |
extends StatelessWidget |
kalıtım |
build metodu |
arayüz çizimi |
const constructor |
sabit kurucu |