AppBar — nedir, yapılandırma ve Flutter widget’ları

Yazar: IT Sectr Yayınlanma: 2026-07-02 Okuma süresi: 9 dk

AppBar, Flutter’da bir başlık, eylemler, gezinme düğmesi ve sekmelerle Material Design bileşenini uygulayan ekranın üst panel widget’ıdır. Row veya Stack üzerinde özel bir panelden farklı olarak AppBar, doğru yükseklikte (56dp, daraltılmış durumda 48dp) ve otomatik SafeArea işlemesiyle hazır bir mimari sağlar. Flutter API Reference (2026)’ya göre AppBar, SliverAppBar aracılığıyla kaydırma animasyonunu ve forceMaterialTransparency parametresi aracılığıyla Material 3 ile entegrasyonu destekler. Tipik bir mobil uygulamada AppBar, sayfa başlığını, sistem eylemlerini ve bölümler arasında geçişi birleştiren bir gezinme ve bilgi merkezi görevi görür.

Önemli Noktalar

  • AppBar — Flutter’da başlık, actions, leading ve TabBar ile Material 3 desteği olan üst panel widget’ı
  • Title — başlık metni, platforma bağlı olarak ortalanmış veya sola hizalanmış
  • Actions — AppBar’da sağda yer alan eylem widget’larının (IconButton, PopupMenuButton) listesi
  • Leading — soldaki gezinme düğmesi (Drawer için “hamburger” simgesi veya iç içe ekranlar için “Geri” düğmesi)
  • Bottom — TabBar, PreferredSize veya özel widget’ları yerleştirmek için AppBar’ın alt alanı

Flutter’da AppBar Nedir

AppBar, bir Scaffold’ın üst kısmında görünen standart bir Material üst panel bileşenidir. Ekran başlığını, bir gezinme düğmesini (genellikle bir “hamburger” simgesi veya “Geri” oku) ve eylemleri (arama, ayarlar veya diğer işlevleri açan simgeler) içerir. AppBar platforma otomatik olarak uyum sağlar: Android’de standart Material alt gölgesini kullanır, iOS’ta — şeffaflığa sahip daha düz bir tasarım.

AppBar, PreferredSizeWidget arabirimini uygular, yani yüksekliği sabittir ve oluşturmadan önce bilinir. Varsayılan olarak, dikey yönlendirmede Android’de AppBar yüksekliği 56dp, iOS’ta 44dp’dir ve üstte SafeArea dikkate alınır. Bu özellik, Scaffold’ın işleme sırasında yeniden oluşturmayı önleyerek body için kullanılabilir alanı önceden hesaplamasına olanak tanır.

Flutter Material Library Guide (2026)’ya göre AppBar, birkaç yinelemeden geçti: Flutter 1.x’te metin içeren basit bir kapsayıcıydı, Flutter 2.x’te Material 3 ve flexibleSpace desteği aldı ve Flutter 3.x’te System UI (durum çubuğu rengi, şeffaflık) ile entegrasyon sağladı. Modern AppBar, Android 12+ cihazlarda Material You’dan Dynamic Color’ı destekler.

AppBar Yapısı: Özellikler ve Parametreler

AppBar, üst panelin her bir bölümünü kontrol eden bir dizi parametre sağlar. Bu özellikleri anlamak, özel çözümler oluşturmadan paneli herhangi bir tasarım gereksinimine göre esnek bir şekilde özelleştirmeye olanak tanır.

ÖzellikTürAçıklama
titleWidget?Panelin ana başlığı, genellikle ekran adıyla birlikte Text
leadingWidget?Başlığın solundaki widget (“Geri” düğmesi veya menü simgesi)
actionsList<Widget>?Sağdaki eylem widget’larının listesi (IconButton, PopupMenuButton)
bottomPreferredSizeWidget?TabBar veya özel widget için alt alan
flexibleSpaceWidget?SliverAppBar’da kaydırma sırasında canlanan arka plan widget’ı
backgroundColorColor?Panelin arka plan rengi, tema rengini geçersiz kılar
elevationdoublePanelin altındaki gölge, içeriğin üzerinde yükselme etkisi yaratır
centerTitlebool?Başlık ortalaması (true — Material 3 davranışı, false — Android stili)

Title ve leading: başlık ve gezinme yapılandırması

title özelliği herhangi bir widget’ı kabul eder, ancak en yaygın olanı TextStyle aracılığıyla stil yapılandırmasıyla Text kullanmaktır. Uzun başlıklar için, yer sınırlı olduğunda metnin doğru şekilde kesilmesi için title’ın Flexible ile sarılması önerilir. leading özelliği, açıkça ayarlanmamışsa, Navigator.push aracılığıyla iç içe bir ekrana giderken otomatik olarak BackButton ile değiştirilir.

Actions: eylem simgelerinin yerleştirilmesi

actions listesi, AppBar’ın sağ kenarına hizalanmış widget’lar içerir. Her öğe 48dp’den (Material Design standardı) daha geniş olmamalıdır. Eylemleri gruplamak için PopupMenuButton kullanın — bu, daha az önemli seçenekleri açılır bir menüde gizler ve arayüz yoğunluğuyla ilgili Material önerilerine uyar.

AppBar Özelleştirmesi: Stiller, Renkler ve Davranış

AppBar, renk, gölge ve dolgu özellikleri aracılığıyla derin özelleştirmeyi destekler. Temel stil, uygulama temasından devralınır, ancak her özellik ayrı ayrı geçersiz kılınabilir. Ana yapılandırma senaryolarına bakalım.

AppBar’ın arka plan rengi backgroundColor aracılığıyla ayarlanır. Belirtilmezse, ThemeData’dan appBarTheme kullanılır. Material 3’te AppBar rengi otomatik olarak ColorScheme.primary’den hesaplanır, ancak belirli bir ekran için geçersiz kılınabilir. Şeffaf bir AppBar için (genellikle profillerde kullanılır), elevation: 0 ile backgroundColor: Colors.transparent ayarlayın.

elevation özelliği AppBar’ın altındaki gölgeyi kontrol eder. 0 değeri gölgeyi kaldırarak Material 3 için geçerli olan “düz” bir panel etkisi yaratır. 4 değeri standart Material Design gölgesi sağlar. Özel gölge kontrolü için shadowColor kullanın — paneli içerikten görsel olarak ayıran gölge rengi.

AppBar’da metin rengini kontrol etmek için foregroundColor kullanın. Bu özellik, başlığın, simgelerin ve actions içindeki metnin rengini etkiler. backgroundColor değiştirildiğinde, zıt bir foregroundColor otomatik olarak seçilir, ancak standart olmayan tasarımlar için zorlanabilir.

SliverAppBar: AppBar’ın Animasyonlu Sürümü

SliverAppBar, CustomScrollView içinde kullanılmak üzere AppBar’ın bir uzantısıdır ve kaydırma animasyonunu destekler: daraltma, paralaks efekti ve sabitleme. Standart AppBar’dan farklı olarak SliverAppBar, bir sliver widget’ıdır ve kaydırma konumuna bağlı olarak boyutu dinamik olarak değiştirebilir.

SliverAppBar’ın ana modları, pinned, floating ve snap özelliklerinin bir kombinasyonuyla belirlenir. Pinned modunda panel her zaman ekranın üst kısmında görünür kalır. Floating modunda, geri kaydırma sırasında görünür. Floating + snap kombinasyonu, en ufak yukarı kaydırmada görünen “yapışkan” bir panel davranışı oluşturur ve genellikle haber akışlarında kullanılır.

Flutter API SliverAppBar (2026)’ya göre, SliverAppBar kullanmak için normal bir ListView veya Column’ı sliver widget’ları içeren CustomScrollView ile değiştirmek gerekir. Scaffold doğru şekilde çalışmaya devam eder, ancak Scaffold’ın appBar özelliği null olmalıdır — SliverAppBar, CustomScrollView içinde ilk sliver olarak yerleştirilir.

Bir Uygulamada AppBar Yapılandırma Örneği

Arama, açılır menü ve TabBar içeren bir AppBar örneğine bakalım. Bu kod, Flutter’da bir üretim uygulamasında tipik bir üst panel yapılandırmasını gösterir.

dart
Scaffold(
  appBar: AppBar(
    title: const Text('Katalog'),
    centerTitle: true,
    leading: IconButton(
      icon: const Icon(Icons.menu),
      onPressed: () => Scaffold.of(context).openDrawer(),
    ),
    actions: [
      IconButton(
        icon: const Icon(Icons.search),
        onPressed: () => showSearch(context: context, delegate: ProductSearch()),
      ),
      PopupMenuButton<String>(
        onSelected: (String value) {},
        itemBuilder: (context) => [
          const PopupMenuItem(value: 'settings', child: Text('Ayarlar')),
          const PopupMenuItem(value: 'about', child: Text('Uygulama Hakkında')),
        ],
      ),
    ],
    bottom: const TabBar(
      tabs: [
        Tab(text: 'All'),
        Tab(text: 'New'),
        Tab(text: 'Popular'),
      ],
    ),
  ),
  body: const TabBarView(
    children: [
      AllProductsPage(),
      NewProductsPage(),
      PopularProductsPage(),
    ],
  ),
)

Örnekte AppBar, ortalanmış bir başlık, solda bir Drawer açma düğmesi, sağda bir arama simgesi ve bir açılır menü içerir. Alttaki TabBar, ürün kategorileri arasında geçiş yapmayı sağlar. Bu yapılandırma, mobil uygulama senaryolarının çoğunu kapsar: gezinme, arama, ek seçenekler ve bölüm değiştirme — hepsi tek bir üst panelde.

Sıkça Sorulan Sorular

Flutter’da AppBar yüksekliği nasıl değiştirilir?

AppBar’ın yüksekliği sabittir (56dp) ve doğrudan değiştirilemez. Özel bir yükseklik için, istenen yükseklikte özel bir widget’ı saran PreferredSize kullanın. Alternatif olarak, standart panel işlevselliğini kaybetmeden daraltılmış durumda esnek boyut yönetimi için collapsedHeight ile SliverAppBar kullanın.

AppBar’ın altındaki gölge nasıl kaldırılır?

AppBar yapıcısında elevation: 0 özelliğini ayarlayın. Bu, gölgeyi kaldırır ve paneli görsel olarak düz hale getirir, Material 3 stiliyle uyumludur. Tam kontrol için, z-koordinatını korumanız gerekiyorsa elevation’ı değiştirmeden gölge rengini geçersiz kılmak için shadowColor: Colors.transparent kullanın.

AppBar ve SliverAppBar arasındaki fark nedir?

AppBar, Scaffold.appBar içine yerleştirilmiş, sabit yükseklikte statik bir paneldir. SliverAppBar, CustomScrollView içinde kullanılan ve kaydırma sırasında daraltılabilen, sabitlenebilen ve canlandırılabilen dinamik bir sürümdür. SliverAppBar, esnek kaydırma davranışı yönetimi için collapsedHeight, expandedHeight, pinned ve floating özelliklerini sağlar.

AppBar’a arama nasıl eklenir?

actions listesine arama simgesi olan bir IconButton ekleyin. Basıldığında, otomatik animasyonla arama ekranını açacak özel bir SearchDelegate ile showSearch’u çağırabilirsiniz. Alternatif olarak, title’ı bir TextField ile değiştirerek AppBar’ı yerinde bir arama çubuğuna dönüştürün; bu, kataloglar ve listeler için kullanışlıdır.

AppBar’da başlık neden ortalanmıyor?

Varsayılan olarak centerTitle null’dır ve davranış platforma bağlıdır: Android’de başlık sola hizalanır, iOS’ta ortalanır. Her iki platformda da ortalamayı zorlamak için centerTitle: true’u açıkça ayarlayın. Başlık leading nedeniyle ortalanmıyorsa, leading’in null olmadığını kontrol edin — varlığı başlığı sağa kaydırır.

Özet

  • AppBar — Flutter’da başlık, leading, actions ve TabBar için bottom ile standart üst panel, otomatik SafeArea yönetimi
  • Title — panelin merkezi öğesi, centerTitle aracılığıyla ortalama yapılandırmasıyla herhangi bir widget’ı kabul eder
  • Actions — sağdaki eylem widget’larının listesi, her biri Material Design standardına göre 48dp’ye kadar genişlikte
  • Leading — soldaki gezinme düğmesi, iç içe ekrana giderken otomatik olarak BackButton ile değiştirilir
  • SliverAppBar — CustomScrollView için AppBar uzantısı, daraltma, sabitleme ve paralaks efekti desteği
  • Material 3 — AppBar, forceMaterialTransparency parametresi aracılığıyla Dynamic Color, şeffaflık ve NavigationBar‑ı destekler
  • Özelleştirme — backgroundColor, elevation, foregroundColor ve shadowColor özellikleri, proje tasarımı için hassas görsel ayarlamaya olanak tanır

Anahtar teslim bir mobil uygulama geliştireceğiz

IT Sectr, 2017'den beri girişimler ve işletmeler için iOS ve Android uygulamaları oluşturmaktadır. Size danışmanlık yapacak ve en iyi çözümü önereceğiz.

Projeyi tartış

Ayrıca okuyun