Menu
CoddyTech

Bir Düğmeyle Geri Dön

Coddy'nin Flutter Journey'sinin Listeler ve Ekranlar bölümünün bir parçası. Ders 20 / 33.

Geri dönmenin tek yolu geri okuna basmak değildir. Kaydet veya Bitti düğmesine basıldığında ekranı kapatması da gerekir. Navigator.pop, geri okuyla aynı şekilde yığının en üstündeki ekranı kaldırır:

ElevatedButton(
  onPressed: () {
    Navigator.pop(context);
  },
  child: const Text('Save'),
)

Push ve pop bir çifttir: push bir ekran ekler, pop ise kaldırır. Ana ekranı yeniden push etmek geri dönmeyi sağlamaz. Yığının en üstüne ikinci bir ana ekran ekler ve bu ekrandaki geri oku ayarlara götürür.

challenge icon

Görev

Kolay

Ayarlar ekranındaki Save düğmesi hiçbir şey yapmıyor. Ayarlar ekranını kapatmasını ve Navigator.pop ile ana ekrana dönmesini sağla.

Kendin dene

import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

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

  @override
  Widget build(BuildContext context) {
    return const MaterialApp(
      debugShowCheckedModeBanner: false,
      home: HomeScreen(),
    );
  }
}

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

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('Home')),
      body: Center(
        child: ElevatedButton(
          onPressed: () {
            Navigator.push(
              context,
              MaterialPageRoute(builder: (context) => const SettingsScreen()),
            );
          },
          child: const Text('Open settings'),
        ),
      ),
    );
  }
}

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

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('Settings')),
      body: Center(
        child: ElevatedButton(
          onPressed: () {},
          child: const Text('Save'),
        ),
      ),
    );
  }
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Listeler ve Ekranlar bölümündeki tüm dersler

Kendi başına pratik yap: Online Flutter derleyicisi