[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を取得することができる。