CodeBlanks Logo Icon CodeBlanks

ModalBottomSheet

showModalBottomSheet ile alt sayfa açmayı öğrenirsin.

showModalBottomSheet nedir?

showModalBottomSheet, ekranın altından kayarak açılan bir sayfa gösterir. context ve builder parametreleri alır; tıpkı showDialog gibi modal davranır. Kullanıcı sayfayı aşağı sürükleyerek kapatabilir; bu yüzden dragHandle gibi görsel ipuçları sık kullanılır.

showModalBottomSheet(
  context: context,
  builder: (context) {
    return SizedBox(height: 200, child: Text('Alt sayfa'));
  },
);

Builder ve boyut

showModalBottomSheet'ın builder'ı döndürdüğü widget, sayfanın içeriğini belirler. Yüksekliği bu widget'ın boyutuna bağlıdır; örneğin SizedBox(height: 200) ile sabit bir yükseklik verirsin. İçeriğin kaydırılabilir olması gerekiyorsa ListView veya SingleChildScrollView kullanırsın.

showModalBottomSheet(
  context: context,
  builder: (_) => SizedBox(
    height: 250,
    child: ListView(children: [ListTile(title: Text('A'))]),
  ),
)

Uygulama Alt sayfa aç

AltSayfaButon adında StatelessWidget tanımla. build bir ElevatedButton döndürsün; onPressed içinde showModalBottomSheet çağrısı yapsın. context ve builder parametrelerini ver; builder bir SizedBox(height: 200, child: Text('Alt sayfa')) döndürsün. main içinde 'hazir' yazdır.

Başlangıç kodu

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

// AltSayfaButon StatelessWidget tanımla
// build ElevatedButton döndürsün
// onPressed alt sayfa açsın

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

Örnek çözüm

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

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

  @override
  Widget build(BuildContext context) {
    return ElevatedButton(
      onPressed: () {
        showModalBottomSheet(
          context: context,
          builder: (_) => const SizedBox(
            height: 200,
            child: Text('Alt sayfa'),
          ),
        );
      },
      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 showModalBottomSheet pencereyi nereden açar?

  • Ekranın üstünden
  • Yan menüden
  • Ekranın ortasından
  • Ekranın altından Doğru cevap

Açıklama: showModalBottomSheet ekranın altından kayarak açılır. Üstten açılma yoktur, yan menü Drawer'ın işidir, orta noktadan açılma showDialog/AlertDialog içindir.

2 showModalBottomSheet fonksiyonu

Soru
____(
  context: context,
  builder: (_) => SizedBox(height: 200, child: Text('Alt')),
);
Cevap
showModalBottomSheet(
  context: context,
  builder: (_) => SizedBox(height: 200, child: Text('Alt')),
);

Açıklama: Alt sayfa açmak için showModalBottomSheet kullanılır. showDialog orta pencere açar, showSnackBar diye bir fonksiyon yoktur (showSnackBar deprecated'tir), showDrawer diye bir fonksiyon yoktur.

3 ModalBottomSheet parçaları

Kavram Anlamı
showModalBottomSheet alt sayfa açma fonksiyonu
context bağlam
builder içerik üreten fonksiyon
SizedBox yükseklik sarmalayıcısı

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