improve gif loading even further

This commit is contained in:
Konstantin Kollar
2022-09-18 23:22:35 +02:00
parent b47ddaae84
commit fae4afbc71
3 changed files with 19 additions and 2 deletions
+11 -2
View File
@@ -2,6 +2,7 @@ import 'dart:typed_data';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_gifimage/flutter_gifimage.dart'; import 'package:flutter_gifimage/flutter_gifimage.dart';
import 'package:flutter_cache_manager/flutter_cache_manager.dart'; import 'package:flutter_cache_manager/flutter_cache_manager.dart';
import 'package:visibility_detector/visibility_detector.dart';
class RainRadar extends StatefulWidget { class RainRadar extends StatefulWidget {
const RainRadar({Key? key}) : super(key: key); const RainRadar({Key? key}) : super(key: key);
@@ -45,7 +46,7 @@ class _RainRadarState extends State<RainRadar>
_gifBytes = gif.readAsBytesSync(); _gifBytes = gif.readAsBytesSync();
_gifLoaded = true; _gifLoaded = true;
}); });
controller.animateTo(24, duration: const Duration(seconds: 15)); // controller.animateTo(24, duration: const Duration(seconds: 15));
}); });
} }
@@ -54,7 +55,15 @@ class _RainRadarState extends State<RainRadar>
Padding( Padding(
padding: const EdgeInsets.all(10), padding: const EdgeInsets.all(10),
child: _gifLoaded child: _gifLoaded
? GifImage(controller: controller, image: MemoryImage(_gifBytes)) ? VisibilityDetector(
key: const Key('gif-key'),
onVisibilityChanged: (visibilityInfo) {
controller.animateTo(24,
duration: const Duration(seconds: 15));
},
child: GifImage(
controller: controller, image: MemoryImage(_gifBytes)),
)
: const CircularProgressIndicator()), : const CircularProgressIndicator()),
Row(mainAxisAlignment: MainAxisAlignment.center, children: [ Row(mainAxisAlignment: MainAxisAlignment.center, children: [
ElevatedButton( ElevatedButton(
+7
View File
@@ -406,6 +406,13 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.1.2" version: "2.1.2"
visibility_detector:
dependency: "direct main"
description:
name: visibility_detector
url: "https://pub.dartlang.org"
source: hosted
version: "0.3.3"
weather_icons: weather_icons:
dependency: "direct main" dependency: "direct main"
description: description:
+1
View File
@@ -40,6 +40,7 @@ dependencies:
flutter_gifimage: flutter_gifimage:
path: ../flutter_gifimage-1.0.1 path: ../flutter_gifimage-1.0.1
flutter_cache_manager: ^3.3.0 flutter_cache_manager: ^3.3.0
visibility_detector: ^0.3.3
dev_dependencies: dev_dependencies:
flutter_test: flutter_test: