はじめに
今回は画面全体にタップイベントをつける方法を備忘録的に紹介します。
画面全体にタップイベントをつけた場合、それと同階層またはその下にあるタップイベントは反応しなくなってしまいます。その対処法として紹介します。
実装
よくあるScaffoldを使用する方法で紹介します。
Scaffold( appBar: AppBar(), body: GestureDetector( onTap: () {}, // tapイベント behavior: HitTestBehavior.opaque, // これ child: TextButton( onPressed: () => print('tap'), child: Text(e), ), ), );
GestureDetector
の中にある behavior
を設定します。この HitTestBehavior
には三種類あり、 deferToChild
, opaque
, translucent
があります。今回は子要素のタップイベントを邪魔しないようにするために opaque
を使用しました。
translucent
は似たような効果を持ちますが、こちらはStackを使用した時に使用すると下にスタックさせたWidgetを邪魔することがなくなります。
最後に
エキサイトではフロントエンジニア、バックエンドエンジニア、アプリエンジニアを随時募集しております。募集にはありませんが、長期インターンも歓迎していますので、興味があれば連絡いただければと思います。
カジュアル面談はこちらになります! meety.net
募集職種一覧はこちらになります!(カジュアルからもOK) www.wantedly.com