πŸ›£οΈNavigation

Navigation is the mechanism of moving between different screens in your application. Flutter provides a robust navigation and routing system to manage the transition between different pages.

1. The Navigator Widget 🧭

The Navigator widget is at the core of Flutter's navigation system. It manages a stack of Route objects and provides methods to manipulate the stack, like push and pop.

2. Basic Navigation πŸ”„

Let's start with a simple example of navigating between two screens.

import 'package:flutter/material.dart';

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: FirstPage(),
    );
  }
}

class FirstPage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('First Page'),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: () {
            Navigator.push(
              context,
              MaterialPageRoute(builder: (context) => SecondPage()),
            );
          },
          child: Text('Go to Second Page'),
        ),
      ),
    );
  }
}

class SecondPage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Second Page'),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: () {
            Navigator.pop(context);
          },
          child: Text('Back to First Page'),
        ),
      ),
    );
  }
}

3. Named Routes πŸ“œ

Named routes provide a way to define a mapping between a named identifier and a route. This is useful for more structured navigation and handling deep links.

4. Passing Data Between Routes πŸ”„

You can pass data between routes by passing arguments to the Navigator.push method.

Assignments πŸ“

Let's reinforce your understanding with some practical exercises:

By tackling these assignments, you’ll get hands-on experience with Flutter's navigation system.

Up next, working with assets!

Last updated

Was this helpful?