chore: New performant fade in for images

pull/953/head
Krille 2 years ago
parent bac2dceae4
commit a518f8a019
No known key found for this signature in database
GPG Key ID: E067ECD60F1A0652

@ -156,21 +156,35 @@ class _MxcImageState extends State<MxcImage> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final data = _imageData; final data = _imageData;
final hasData = data != null && data.isNotEmpty;
return data == null || data.isEmpty
? placeholder(context) return Stack(
: Image.memory( children: [
data, if (!hasData) placeholder(context),
width: widget.width, AnimatedOpacity(
height: widget.height, opacity: hasData ? 1 : 0,
fit: widget.fit, duration: FluffyThemes.animationDuration,
filterQuality: FilterQuality.medium, curve: FluffyThemes.animationCurve,
errorBuilder: (context, __, ___) { child: hasData
_isCached = false; ? Image.memory(
_imageData = null; data,
WidgetsBinding.instance.addPostFrameCallback(_tryLoad); width: widget.width,
return placeholder(context); height: widget.height,
}, fit: widget.fit,
); filterQuality: FilterQuality.medium,
errorBuilder: (context, __, ___) {
_isCached = false;
_imageData = null;
WidgetsBinding.instance.addPostFrameCallback(_tryLoad);
return placeholder(context);
},
)
: SizedBox(
width: widget.width,
height: widget.height,
),
),
],
);
} }
} }

Loading…
Cancel
Save