我正在使用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()
后,如何加载预缓存的图像 当我想使用它时?
在窗口小部件的initState中调用预缓存为时已晚。您应该改为在main()函数中调用此方法,如下所示:
Future<void> main() async {
await precachePicture(ExactAssetPicture(SvgPicture.svgStringDecoder, 'assets/images/onboard.svg'), null);
runApp(YourApp());
}