Firebase Analyticsviewログを実装するために、該当するWidgetが画面に表示されたタイミングで任意の関数を発火させたい。

公式が出している以下のパッケージを使って実装する visibility_detector | Flutter Package

以下のようなWidgetが用意されているので該当するWidgetを囲む。

VisibilityDetector(
	key: Key('Widget') // 必須
	onVisibilityChanged: (info) {
		info.visibleFraction // どのくらい表示されているか
		info.visibleBounds // widgetの位置
 
		if (info.visibileFraction * 100 > 80) {
			logView(); //80%以上表示されていたら表示ログを発火させる
		}
	}
	child: Widget()
)

Sliverの場合はSliver専用のWidgetを使う

SliverVisibilityDetector(
	key: Key(...)
	onVisiblityChanged: (info) {}
	sliver: Sliver(),
)