@@ -55,7 +55,11 @@ class EasyLoadingContainer extends StatefulWidget {
5555class EasyLoadingContainerState extends State <EasyLoadingContainer >
5656 with SingleTickerProviderStateMixin {
5757 String _status;
58+ AlignmentGeometry _alignment;
59+ bool _dismissOnTap, _ignoring;
60+ Color _maskColor;
5861 AnimationController _animationController;
62+
5963 bool get isPersistentCallbacks =>
6064 SchedulerBinding .instance.schedulerPhase ==
6165 SchedulerPhase .persistentCallbacks;
@@ -65,6 +69,14 @@ class EasyLoadingContainerState extends State<EasyLoadingContainer>
6569 super .initState ();
6670 if (! mounted) return ;
6771 _status = widget.status;
72+ _alignment = (widget.indicator == null && widget.status? .isNotEmpty == true )
73+ ? EasyLoadingTheme .alignment (widget.toastPosition)
74+ : AlignmentDirectional .center;
75+ _dismissOnTap =
76+ widget.dismissOnTap ?? (EasyLoadingTheme .dismissOnTap ?? false );
77+ _ignoring =
78+ _dismissOnTap ? false : EasyLoadingTheme .ignoring (widget.maskType);
79+ _maskColor = EasyLoadingTheme .maskColor (widget.maskType);
6880 _animationController = AnimationController (
6981 vsync: this ,
7082 duration: EasyLoadingTheme .animationDuration,
@@ -113,12 +125,12 @@ class EasyLoadingContainerState extends State<EasyLoadingContainer>
113125 });
114126 }
115127
128+ void _onTap () async {
129+ if (_dismissOnTap) await EasyLoading .dismiss ();
130+ }
131+
116132 @override
117133 Widget build (BuildContext context) {
118- AlignmentGeometry _alignment =
119- (widget.indicator == null && widget.status? .isNotEmpty == true )
120- ? EasyLoadingTheme .alignment (widget.toastPosition)
121- : AlignmentDirectional .center;
122134 return Stack (
123135 alignment: _alignment,
124136 children: < Widget > [
@@ -128,16 +140,22 @@ class EasyLoadingContainerState extends State<EasyLoadingContainer>
128140 return Opacity (
129141 opacity: _animationController? .value ?? 0 ,
130142 child: IgnorePointer (
131- ignoring: EasyLoadingTheme .ignoring (widget.dismissOnTap),
132- child: GestureDetector (
133- onTap: () async => await EasyLoading .dismiss (),
134- behavior: HitTestBehavior .opaque,
135- child: Container (
136- width: double .infinity,
137- height: double .infinity,
138- color: EasyLoadingTheme .maskColor (widget.maskType),
139- ),
140- ),
143+ ignoring: _ignoring,
144+ child: _dismissOnTap
145+ ? GestureDetector (
146+ onTap: _onTap,
147+ behavior: HitTestBehavior .translucent,
148+ child: Container (
149+ width: double .infinity,
150+ height: double .infinity,
151+ color: _maskColor,
152+ ),
153+ )
154+ : Container (
155+ width: double .infinity,
156+ height: double .infinity,
157+ color: _maskColor,
158+ ),
141159 ),
142160 );
143161 },
0 commit comments