part of 'photo_main_page.dart'; class ImageItem extends StatelessWidget { final AssetEntity entity; final Color themeColor; final int size; final LoadingDelegate loadingDelegate; const ImageItem({ Key key, this.entity, this.themeColor, this.size = 64, this.loadingDelegate, }) : super(key: key); @override Widget build(BuildContext context) { var thumb = ImageLruCache.getData(entity, size); if (thumb != null) { return _buildImageItem(context, thumb); } return FutureBuilder( future: entity.thumbDataWithSize(size, size), builder: (BuildContext context, AsyncSnapshot snapshot) { var futureData = snapshot.data; if (snapshot.connectionState == ConnectionState.done && futureData != null) { ImageLruCache.setData(entity, size, futureData); return _buildImageItem(context, futureData); } return Center( child: loadingDelegate.buildPreviewLoading( context, entity, themeColor, ), ); }, ); } Widget _buildImageItem(BuildContext context, Uint8List data) { return Image.memory( data, width: double.infinity, height: double.infinity, fit: BoxFit.cover, ); } }