diff --git a/assets/images/progress-loading-red.gif b/assets/images/progress-loading-red.gif new file mode 100644 index 00000000..517c3dab Binary files /dev/null and b/assets/images/progress-loading-red.gif differ diff --git a/lib/widgets/shared/app_loader_widget.dart b/lib/widgets/shared/app_loader_widget.dart index 65a5f231..7b1f1718 100644 --- a/lib/widgets/shared/app_loader_widget.dart +++ b/lib/widgets/shared/app_loader_widget.dart @@ -1,6 +1,8 @@ import 'package:flutter/material.dart'; import 'package:progress_hud_v2/progress_hud.dart'; +import 'loader/gif_loader_container.dart'; + /* *@author: Elham Rababah *@Date:19/4/2020 @@ -41,6 +43,18 @@ class _AppLoaderWidgetState extends State { @override Widget build(BuildContext context) { - return Positioned(child: _progressHUD); + return Container( + height: MediaQuery.of(context).size.height, + + child: Stack( + children: [ + Container( + color: Colors.grey.withOpacity(0.6), + ), + Container(child: GifLoaderContainer(), margin: EdgeInsets.only( + bottom: MediaQuery.of(context).size.height * 0.09)) + ], + ), + ); } } diff --git a/lib/widgets/shared/loader/gif_loader_container.dart b/lib/widgets/shared/loader/gif_loader_container.dart new file mode 100644 index 00000000..b7a20339 --- /dev/null +++ b/lib/widgets/shared/loader/gif_loader_container.dart @@ -0,0 +1,43 @@ +import 'package:flutter/cupertino.dart'; +import 'package:flutter_gifimage/flutter_gifimage.dart'; + +class GifLoaderContainer extends StatefulWidget { + @override + _GifLoaderContainerState createState() => _GifLoaderContainerState(); +} + +class _GifLoaderContainerState extends State + with TickerProviderStateMixin { + GifController controller1; + + @override + void initState() { + controller1 = GifController(vsync: this); + + WidgetsBinding.instance.addPostFrameCallback((_) { + controller1.repeat( + min: 0, max: 11, period: Duration(milliseconds: 750), reverse: true); + }); + super.initState(); + } + + @override + void dispose() { + controller1.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + return Center( + //progress-loading.gif + child: Container( + // margin: EdgeInsets.only(bottom: 40), + child: GifImage( + controller: controller1, + image: AssetImage( + "assets/images/progress-loading-red.gif"), //NetworkImage("http://img.mp.itc.cn/upload/20161107/5cad975eee9e4b45ae9d3c1238ccf91e.jpg"), + ), + )); + } +} \ No newline at end of file diff --git a/lib/widgets/shared/loader/gif_loader_dialog_utils.dart b/lib/widgets/shared/loader/gif_loader_dialog_utils.dart new file mode 100644 index 00000000..9b45bba1 --- /dev/null +++ b/lib/widgets/shared/loader/gif_loader_dialog_utils.dart @@ -0,0 +1,14 @@ +import 'package:flutter/material.dart'; + +import 'gif_loader_container.dart'; + + +class GifLoaderDialogUtils { + static showMyDialog(BuildContext context) { + showDialog(context: context, child: GifLoaderContainer()); + } + + static hideDialog(BuildContext context) { + Navigator.of(context).pop(); + } +} diff --git a/pubspec.lock b/pubspec.lock index 7f1d8c1d..2ad55e08 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -342,6 +342,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "0.1.4" + flutter_gifimage: + dependency: "direct main" + description: + name: flutter_gifimage + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.1" flutter_localizations: dependency: "direct main" description: flutter diff --git a/pubspec.yaml b/pubspec.yaml index 57ed4cbb..2a9f2e73 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -59,6 +59,8 @@ dependencies: #Dependency Injection get_it: ^4.0.2 + #GIF image + flutter_gifimage: ^1.0.1 #Autocomplete TextField autocomplete_textfield: ^1.7.3