Flutter
Özel widget nedir?
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.
Örnek çözümü göster
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');
}
Kendini test et
-
Ö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
- sqflite tablosu oluşturmak
Cevabı göster
StatelessWidget'ı extend edip build metodunu geçersiz kılmak — Ö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.
-
StatelessWidget'ı extend et
class Baslik ____ {
const Baslik({super.key});
@override
Widget build(BuildContext context) {
return const Text('Merhaba');
}
}
Cevabı göster
class Baslik extends StatelessWidget {
const Baslik({super.key});
@override
Widget build(BuildContext context) {
return const Text('Merhaba');
}
}
-
Özel widget parçaları
- class Baslik
- sınıf bildirimi
- extends StatelessWidget
- kalıtım
- build metodu
- arayüz çizimi
- const constructor
- sabit kurucu
Sıradaki ders: Kompozisyon