import 'package:flutter/material.dart'; extension ImagePreloadExtention on Image { void preload({ VoidCallback? onImageLoaded, VoidCallback? onError, }) { image .resolve(ImageConfiguration()) .addListener(ImageStreamListener((ImageInfo info, bool syncCall) { onImageLoaded?.call(); }, onError: (Object exception, StackTrace? stackTrace) { onError?.call(); })); } } extension PreloadImageProviderExtension on ImageProvider { void preload({ VoidCallback? onImageLoaded, VoidCallback? onError, }) { this .resolve(ImageConfiguration()) .addListener(ImageStreamListener((ImageInfo info, bool syncCall) { onImageLoaded?.call(); }, onError: (Object exception, StackTrace? stackTrace) { onError?.call(); })); } }
Preview:
downloadDownload PNG
downloadDownload JPEG
downloadDownload SVG
Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!
Click to optimize width for Twitter