Ver código fonte

Add fade-in animation to thumbnails

Vishnu Mohandas 5 anos atrás
pai
commit
56783b97d3
1 arquivos alterados com 16 adições e 6 exclusões
  1. 16 6
      lib/ui/thumbnail_widget.dart

+ 16 - 6
lib/ui/thumbnail_widget.dart

@@ -22,7 +22,7 @@ class _ThumbnailWidgetState extends State<ThumbnailWidget> {
   static final _logger = Logger("ThumbnailWidget");
   static final _logger = Logger("ThumbnailWidget");
   static final Widget loadingWidget = Container(
   static final Widget loadingWidget = Container(
     alignment: Alignment.center,
     alignment: Alignment.center,
-    color: Colors.grey[500],
+    color: Colors.grey[800],
   );
   );
 
 
   bool _hasLoadedThumbnail = false;
   bool _hasLoadedThumbnail = false;
@@ -36,13 +36,14 @@ class _ThumbnailWidgetState extends State<ThumbnailWidget> {
     }
     }
 
 
     _loadLocalImage(context);
     _loadLocalImage(context);
+    var content;
     if (_imageProvider != null) {
     if (_imageProvider != null) {
-      var image = Image(
+      final image = Image(
         image: _imageProvider,
         image: _imageProvider,
         fit: BoxFit.cover,
         fit: BoxFit.cover,
       );
       );
       if (widget.photo.fileType == FileType.video) {
       if (widget.photo.fileType == FileType.video) {
-        return Stack(
+        content = Stack(
           children: [
           children: [
             image,
             image,
             Icon(Icons.play_circle_outline),
             Icon(Icons.play_circle_outline),
@@ -50,11 +51,20 @@ class _ThumbnailWidgetState extends State<ThumbnailWidget> {
           fit: StackFit.expand,
           fit: StackFit.expand,
         );
         );
       } else {
       } else {
-        return image;
+        content = image;
       }
       }
-    } else {
-      return loadingWidget;
     }
     }
+    return Stack(
+      children: [
+        loadingWidget,
+        AnimatedOpacity(
+          opacity: content == null ? 0 : 1.0,
+          duration: Duration(milliseconds: 400),
+          child: content,
+        ),
+      ],
+      fit: StackFit.expand,
+    );
   }
   }
 
 
   void _loadLocalImage(BuildContext context) {
   void _loadLocalImage(BuildContext context) {