facebook twitter hatena line email

Flutter/画面遷移/基本

提供: 初心者エンジニアの簡易メモ
2019年11月16日 (土) 15:17時点におけるAdmin (トーク | 投稿記録)による版 (ページの作成:「 ==画面遷移サンプル== ==その1== routerをMyAppの中に追加 <pre> class MyApp extends StatelessWidget { @override Widget build(BuildContext context) {...」)

(差分) ←前の版 | 最新版 (差分) | 次の版→ (差分)
移動: 案内検索

画面遷移サンプル

その1

routerをMyAppの中に追加

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(title: 'Flutter Demo Home Page'),
      routes: <String, WidgetBuilder> {
        '/help': (BuildContext context) => new MyHomePage(title: 'page help'),
        '/privacy': (BuildContext context) => new MyHomePage(title: 'page privacy'),
        '/use': (BuildContext context) => new MyHomePage(title: 'page use'),
      },
    );
  }
}

画面遷移

Navigator.of(context).pushNamed('/use');

その2

router&画面遷移

Navigator.push(context, new MaterialPageRoute<Null>(
    settings: const RouteSettings(name: "/use"),
    builder: (BuildContext context) => MyHomePage(title: 'page use')
));

元の画面に戻る

Navigator.pop(context);

遷移先から遷移元に戻った時の処理

Navigator.push(context, new MaterialPageRoute<Null>(
         settings: const RouteSettings(name: "/text"),
         builder: (BuildContext context) => TextPage(title: 'page use')
     )).then((result) {
       setState(() {
         print ("ここで戻ってきた時の処理");
       });
});

参考

https://qiita.com/tatsu/items/38cd85efd93005b95af9