facebook twitter hatena line email

「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}");
  }

参考:https://qiita.com/najeira/items/89d8014a30102204babb