Flutter Image.memory() 加载大文件缓慢的动画

Ant*_*ote 1 flutter flutter-layout flutter-image

我正在从图库中获取图像并使用 Image.memory() 将其显示在我的裁剪器中。但有时(对于大文件)图像需要几秒钟的时间才能显示。我想显示加载动画,但如何检测它何时加载或完成?没有像 Image.network() 这样的loadingBuilder。有任何想法吗?

final XFile? image = await _picker.pickImage(source: ImageSource.gallery);

Image.memory(_imageToCrop!)
Run Code Online (Sandbox Code Playgroud)

Ant*_*ote 5

正如Ankit Kumar Maurya所说,我研究了frameBuilder 文档,这解决了我的问题:

 Image.memory(
                      _imageToCrop!,
                      frameBuilder:
                          ((context, child, frame, wasSynchronouslyLoaded) {
                        if (wasSynchronouslyLoaded) return child;
                        return AnimatedSwitcher(
                          duration: const Duration(milliseconds: 200),
                          child: frame != null
                              ? child
                              : SizedBox(
                                height: 60,
                                width: 60,
                                child: CircularProgressIndicator(
                                    strokeWidth: 6),
                              ),
                        );
                      }),
                    ),
Run Code Online (Sandbox Code Playgroud)