From 717b3fc98018bb469bcc7c4542e7e5c6bfda7035 Mon Sep 17 00:00:00 2001 From: David Morales Date: Sun, 2 May 2021 20:07:46 -0400 Subject: [PATCH] Adding custom loader widget. --- lib/splashscreen.dart | 31 ++++++++++++++++++++++++------- 1 file changed, 24 insertions(+), 7 deletions(-) diff --git a/lib/splashscreen.dart b/lib/splashscreen.dart index 9529b98bf..0a16a6790 100644 --- a/lib/splashscreen.dart +++ b/lib/splashscreen.dart @@ -49,6 +49,9 @@ class SplashScreen extends StatefulWidget { /// Whether to display a loader or not final bool useLoader; + // Custom loader widget + final Widget? customLoader; + /// Custom page route if you have a custom transition you want to play final Route? pageRoute; @@ -84,6 +87,7 @@ class SplashScreen extends StatefulWidget { this.imageBackground, this.gradientBackground, required this.useLoader, + this.customLoader, this.routeName, }) : assert( routeName == null || @@ -129,6 +133,7 @@ class SplashScreen extends StatefulWidget { ImageProvider? imageBackground, Gradient? gradientBackground, bool useLoader = true, + Widget? customLoader, String? routeName, }) => SplashScreen( @@ -147,6 +152,7 @@ class SplashScreen extends StatefulWidget { imageBackground: imageBackground, gradientBackground: gradientBackground, useLoader: useLoader, + customLoader: customLoader, routeName: routeName, ); @@ -166,6 +172,7 @@ class SplashScreen extends StatefulWidget { ImageProvider? imageBackground, Gradient? gradientBackground, bool useLoader = true, + Widget? customLoader, String? routeName, }) => SplashScreen( @@ -184,6 +191,7 @@ class SplashScreen extends StatefulWidget { imageBackground: imageBackground, gradientBackground: gradientBackground, useLoader: useLoader, + customLoader: customLoader, routeName: routeName, ); @@ -287,13 +295,22 @@ class _SplashScreenState extends State { child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ - widget.useLoader - ? CircularProgressIndicator( - valueColor: AlwaysStoppedAnimation( - widget.loaderColor, - ), - ) - : Container(), + if (widget.useLoader == true) ...[ + if (widget.customLoader != null) ...[ + Container( + alignment: Alignment.center, + child: widget.customLoader, + ) + ] else ...[ + CircularProgressIndicator( + valueColor: AlwaysStoppedAnimation( + widget.loaderColor, + ), + ) + ] + ] else ...[ + Container() + ], Padding( padding: const EdgeInsets.only(top: 20.0), ),