ぽぴなび

知って感動した技術情報・生活情報や買ってよかったものの雑記です。

【Flutter】Widgetに対するユーザー操作を一時的に無効にする

ButtonなどはonPressedonTapnullにすれば非活性化するが、複数の要素へのユーザー操作を無効にしたい場合はAbsorbPointerIgnorePointerが便利。

2つの違いについては以下の回答が参考になる。
(使い方にもよるが、正直あんまり変わらない気がする)

dart - Flutter AbsorbPointer vs IgnorePointer difference - Stack Overflow

使用例

以下のような「説明したいWidgetにフォーカスを当てるチュートリアル」で、チュートリアルが表示される前の一瞬に要素をタップされることを防ぐことができる。(連続でタップしているとたまに起きる)

tutorial_coach_mark | Flutter Package

チュートリアルが完了したらabsorbing(またはignoring)の値をfalseに設定するのをお忘れなく。