「Flutter/画面遷移/画面遷移イベント検知」の版間の差分
提供: 初心者エンジニアの簡易メモ
(ページの作成:「==Scaffoldの画面でイベント検知する== _TextPageState と ArticleTextPage は各々のクラス名を入れる。 class _TextPageState extends State<ArticleTe...」) |
|||
| 行2: | 行2: | ||
_TextPageState と ArticleTextPage は各々のクラス名を入れる。 | _TextPageState と ArticleTextPage は各々のクラス名を入れる。 | ||
| − | + | <pre> | |
class _TextPageState extends State<ArticleTextPage> with RouteAware { | class _TextPageState extends State<ArticleTextPage> with RouteAware { | ||
RouteObserver<PageRoute> routeObserver = new RouteObserver<PageRoute>(); | RouteObserver<PageRoute> routeObserver = new RouteObserver<PageRoute>(); | ||
| 行37: | 行37: | ||
debugPrint("didPushNext ${runtimeType}"); | debugPrint("didPushNext ${runtimeType}"); | ||
} | } | ||
| − | + | </pre> | |
参考:https://qiita.com/najeira/items/89d8014a30102204babb | 参考:https://qiita.com/najeira/items/89d8014a30102204babb | ||
2019年11月16日 (土) 15:26時点における版
Scaffoldの画面でイベント検知する
_TextPageState と ArticleTextPage は各々のクラス名を入れる。
class _TextPageState extends State<ArticleTextPage> with RouteAware {
RouteObserver<PageRoute> routeObserver = new RouteObserver<PageRoute>();
@override
void didChangeDependencies() {
super.didChangeDependencies();
routeObserver.subscribe(this, ModalRoute.of(context));
}
@override
void dispose() {
routeObserver.unsubscribe(this);
super.dispose();
}
// 上の画面がpopされて、この画面に戻ったときに呼ばれます
void didPopNext() {
debugPrint("didPopNext ${runtimeType}");
}
// この画面がpushされたときに呼ばれます
void didPush() {
debugPrint("didPush ${runtimeType}");
}
// この画面がpopされたときに呼ばれます
void didPop() {
debugPrint("didPop ${runtimeType}");
}
// この画面から新しい画面をpushしたときに呼ばれます
void didPushNext() {
debugPrint("didPushNext ${runtimeType}");
}
