如何在flutter_svg中使用preCachePicture()

问题描述 投票:0回答:1

我正在使用flutter_svg包在我的应用中渲染SVG图像,因为flutter尚未正式支持SVG。尝试将SVG图像加载到我的应用中以及寻找我发现该解决方案可以使用preCachePicture()预加载SVG图像。问题是官方flutter_svg文档没有明确说明,也没有其他Web材料显示如何使用此功能预加载SVG图像。

我正在调用loadPictures()中的initState()函数来预加载SVG图片。

String onboardImage = 'assets/images/onboard.svg';

@override
  void initState() {
    loadPictures();
    super.initState();
  }

  Future<void> loadPictures() async {
    await precachePicture(ExactAssetPicture((SvgPicture.svgStringDecoder),onboardImage), null);    
  } 

调用preCachePicture()后,如何加载预缓存的图像 当我想使用它时?

flutter svg dart flutter-dependencies dart-pub
1个回答
0
投票

在窗口小部件的initState中调用预缓存为时已晚。您应该改为在main()函数中调用此方法,如下所示:

Future<void> main() async {
    await precachePicture(ExactAssetPicture(SvgPicture.svgStringDecoder, 'assets/images/onboard.svg'), null);
    runApp(YourApp());
}
© www.soinside.com 2019 - 2024. All rights reserved.