[Flutter] build時に確定するcontroller系の値を取得する方法
例えば、PhotoViewの初期表示時のサイズ(scale)を取得したい場合とか。
PhotoView(
controller: photoController,
imageProvider: image,
),
build時のcontrollerにphotoControllerを渡す処理が走らないと photoController.scale
を取得することができない。
解決法としては、 WidgetsBinding.instance.addPostFrameCallback
を使う方法がある。
double initialPhotoScale;
WidgetsBinding.instance.addPostFrameCallback((_) {
initialPhotoScale = photoController.scale;
});
WidgetsBinding.instance.addPostFrameCallback
はbuild直後にコールバックが走るため、build後のphotoControllerを取得することができる。