CodeBlanks Logo Icon CodeBlanks

AlertDialog

AlertDialog ile başlık, içerik ve aksiyon yapmayı öğrenirsin.

AlertDialog nedir?

AlertDialog, başlık, içerik ve aksiyon butonları içeren bir Material penceresidir. title başlığı, content gövde metnini, actions ise kullanıcı seçeneklerini (örneğin 'Tamam', 'İptal') barındırır.

AlertDialog(
  title: Text('Silinsin mi?'),
  content: Text('Bu işlem geri alınamaz.'),
  actions: [
    TextButton(child: Text('İptal'), onPressed: () {}),
    TextButton(child: Text('Sil'), onPressed: () {}),
  ],
)

AlertDialog genellikle showDialog'ın builder'ı içinde döndürülür.

title ve content

AlertDialog'ın title parametresi başlık widget'ını, content parametresi ise gövde widget'ını alır. Her ikisi de genellikle bir Text olur ama başka widget'lar da kullanılabilir. content tek widget alır; birden fazla öğe göstermek için Column gibi bir sarmalayıcı kullanırsın.

AlertDialog(
  title: const Text('Bilgi'),
  content: const Column(
    mainAxisSize: MainAxisSize.min,
    children: [Text('Satır 1'), Text('Satır 2')],
  ),
)

Uygulama AlertDialog kur

PencereButon adında StatelessWidget tanımla. build bir ElevatedButton döndürsün; onPressed içinde showDialog çağrısı yapsın. builder bir AlertDialog döndürsün; title Text('Silinsin mi?'), actions içinde bir TextButton bulunsun ve yazısı 'Tamam' olsun. main içinde 'hazir' yazdır.

Başlangıç kodu

main.dart
import 'package:flutter/material.dart';

// PencereButon StatelessWidget tanımla
// build ElevatedButton döndürsün
// onPressed showDialog çağırsın
// AlertDialog title ve actions içersin

void main() {
  // 'hazir' yazdır
}

Örnek çözüm

main.dart
import 'package:flutter/material.dart';

class PencereButon extends StatelessWidget {
  const PencereButon({super.key});

  @override
  Widget build(BuildContext context) {
    return ElevatedButton(
      onPressed: () {
        showDialog(
          context: context,
          builder: (_) => AlertDialog(
            title: const Text('Silinsin mi?'),
            actions: [
              TextButton(
                onPressed: () {},
                child: const Text('Tamam'),
              ),
            ],
          ),
        );
      },
      child: const Text('Aç'),
    );
  }
}

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 AlertDialog'ın hangi parametresi butonları barındırır?

  • padding
  • title
  • actions Doğru cevap
  • content

Açıklama: actions bir Widget listesi alır; burada TextButton gibi butonlar gösterilir. title başlık, content gövde, padding iç boşluktur; butonları içermez.

2 actions parametresi

Soru
AlertDialog(
  title: Text('Sil'),
  ____: [
    TextButton(child: Text('Tamam'), onPressed: () {}),
  ],
)
Cevap
AlertDialog(
  title: Text('Sil'),
  actions: [
    TextButton(child: Text('Tamam'), onPressed: () {}),
  ],
)

Açıklama: AlertDialog'ın butonları actions parametresiyle verilir. buttons, options ve items AlertDialog'un parametre adları değildir.

3 AlertDialog parçaları

Kavram Anlamı
title başlık widget'ı
content gövde widget'ı
actions buton listesi
TextButton yaygın aksiyon butonu

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