Preload assets images before build. Here’s a simplified version of my code, preloading images in method didChangeDependencies:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | class _SampleWidgetState extends State<SamleWidget> { Image image1; Image image2; Image image3; Image image4; Image currentImage; @override void initState() { super.initState(); image1 = Image.asset("assets/image1.png"); image2 = Image.asset("assets/image2.png"); image3 = Image.asset("assets/image3.png"); image4 = Image.asset("assets/image4.png"); currentImage = image1; } @override void didChangeDependencies() { super.didChangeDependencies(); precacheImage(image1.image, context); precacheImage(image2.image, context); precacheImage(image3.image, context); precacheImage(image4.image, context); } @override Widget build(BuildContext context) { return Container( child: currentImage, ); } void setImage(int index) { switch (index) { case 1: currentImage = image1; break; case 2: currentImage = image2; break; case 3: currentImage = image3; break; case 4: currentImage = image4; break; } } } |
If you like this question & answer and want to contribute, then write your question & answer and email to freewebmentor[@]gmail.com. Your question and answer will appear on FreeWebMentor.com and help other developers.