CodeBlanks Logo Icon CodeBlanks

Ö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.

Başlangıç kodu

main.dart
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

main.dart
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

Soru
class Baslik ____ {
  const Baslik({super.key});

  @override
  Widget build(BuildContext context) {
    return const Text('Merhaba');
  }
}
Cevap
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

Orta seviye bölümündeki tüm dersler