facebook twitter hatena line email

「Flutter/画面遷移」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
 
(同じ利用者による、間の8版が非表示)
行1: 行1:
==画面遷移サンプル==
+
[[flutter/画面遷移/基本]]
==その1==
+
routerをMyAppの中に追加
+
<pre>
+
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'),
+
      },
+
    );
+
  }
+
}
+
</pre>
+
  
画面遷移
+
[[flutter/画面遷移/応用]]
Navigator.of(context).pushNamed('/use');
+
  
==その2==
+
[[flutter/画面遷移/画面遷移イベント検知]]
router&画面遷移
+
<pre>
+
Navigator.push(context, new MaterialPageRoute<Null>(
+
    settings: const RouteSettings(name: "/use"),
+
    builder: (BuildContext context) => MyHomePage(title: 'page use')
+
));
+
</pre>
+
 
+
==元の画面に戻る==
+
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
+
 
+
==指定した元の画面に戻る==
+
遷移する時
+
<pre>
+
Navigator.push(context, new MaterialPageRoute<Null>(
+
    settings: const RouteSettings(name: "/use"),
+
    builder: (BuildContext context) => MyHomePage(title: 'page use')
+
));
+
</pre>
+
 
+
指定した画面へ戻る時
+
Navigator.popUntil(context, ModalRoute.withName("/use"));
+
 
+
同じ"/use"をまで戻ってそれまでのページは破棄される。
+

2019年11月16日 (土) 15:22時点における最新版

flutter/画面遷移/基本

flutter/画面遷移/応用

flutter/画面遷移/画面遷移イベント検知