リスト 5.1 / 5.2


import 'package:flutter/material.dart';

// リスト 5.1
void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: SamplePage1(),
      routes: {
        '/sample_page_1': (context) => SamplePage1(),
        '/sample_page_2': (context) => SamplePage2(),
        '/sample_page_3': (context) => SamplePage3()
      }
    );
  }
}

// リスト 5.2
class SamplePage1 extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('SamplePage1')),
      body: Center(
        child: Row(
          mainAxisAlignment: MainAxisAlignment.spaceBetween,
          children: [
            IconButton(onPressed: null, icon: Icon(Icons.arrow_back)),
            Text("SamplePage1"),
            IconButton(
              onPressed: () => 
                      Navigator.of(context).pushNamed('/sample_page_2'),
              icon: Icon(Icons.arrow_forward)
            )
          ]
        )
      )
    );
  }
}

class SamplePage2 extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('SamplePage2')),
      body: Center(
        child: Row(
          mainAxisAlignment: MainAxisAlignment.spaceBetween,
          children: [
            IconButton(
              onPressed: () => Navigator.of(context).pop(),
              icon: Icon(Icons.arrow_back)
            ),
            Text('SamplePage2'),
            IconButton(
              onPressed: () => 
                      Navigator.of(context).pushNamed('/sample_page_3'),
              icon: Icon(Icons.arrow_forward)
            )
          ]
        )
      )
    );
  }
}

class SamplePage3 extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('SamplePage3')),
      body: Center(
        child: Row(
          mainAxisAlignment: MainAxisAlignment.spaceBetween,
          children: [
            IconButton(
              onPressed: () => Navigator.of(context).pop(),
              icon: Icon(Icons.arrow_back)
            ),
            Text('SamplePage3'),
            IconButton(onPressed: null, icon: Icon(Icons.arrow_forward))
          ]
        )
      )
    );
  }
}