CodeBlanks Logo Icon CodeBlanks

Navigator nedir?

Navigator ile ekran yığınını yönetmeyi öğrenirsin.

Navigator nedir?

Navigator, Flutter'da ekran yığınını (stack) yöneten sınıftır. Her ekran bir route olarak temsil edilir ve yığına eklenir. Navigator.push ile yeni ekran eklenir, Navigator.pop ile üstteki ekran çıkarılır. En üstteki route, kullanıcıya görünür olan güncel ekrandır.

Navigator.push(context, route);
Navigator.pop(context);

Stack ve route kavramları

Navigator'ın yığı LIFO (son giren ilk çıkar) prensibiyle çalışır. En son eklenen route en üsttedir ve kullanıcıya görünür. Navigator.pop çağrıldığında en üstteki route çıkarılır ve bir alttaki ekran tekrar görünür hale gelir. Yeni açılan ekran her zaman yığın tepesine konur.

Uygulama Navigator.push çağrısı ekle

baslat adında bir fonksiyon yaz; çağrılınca Navigator hazir yazdırsın. main içinde baslat'ı çağır. Bir ElevatedButton ekle ve onPressed'ında Navigator.push çağrısı yapsın.

Başlangıç kodu

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

// baslat fonksiyonu yaz: "Navigator hazir" yazdirsin

void main() {
  // baslat'i cagir
  runApp(const Uygulama());
}

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

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: Center(
          // ElevatedButton ekle
          child: SizedBox(),
        ),
      ),
    );
  }
}

Örnek çözüm

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

void baslat() {
  print('Navigator hazir');
}

void main() {
  baslat();
  runApp(const Uygulama());
}

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

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: Center(
          child: ElevatedButton(
            onPressed: () {
              Navigator.push(
                context,
                MaterialPageRoute(builder: (_) => Scaffold()),
              );
            },
            child: Text('Ac'),
          ),
        ),
      ),
    );
  }
}

Beklenen çıktı

Navigator hazir

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Navigator neyi yönetir?

  • Ekran yığınını (stack) yönetir Doğru cevap
  • Yalnızca renkleri yönetir
  • Yalnızca metinleri yönetir
  • Yalnızca ikonları yönetir

Açıklama: Navigator, ekranların yığın şeklinde tutulduğu rotaları yönetir; renk, metin veya ikon yönetimi ile ilgili değildir.

2 Navigator sınıfını ekle

Soru
// Yeni ekran aç
____.push(context, route);
Cevap
// Yeni ekran aç
Navigator.push(context, route);

Açıklama: Ekran yığınını yöneten sınıfın adı Navigator'dır; Scaffold, MaterialApp ve Container bu amaca yönelik değildir.

3 Navigator bileşenleri

Kavram Anlamı
Navigator Ekran yığınını yönetir
stack Ekranların sıralı dizisi
route Bir ekranı temsil eder
push Yeni ekran ekler

Başlangıç bölümündeki tüm dersler