@@ -55,7 +55,11 @@ class EasyLoadingContainer extends StatefulWidget {
55
55
class EasyLoadingContainerState extends State <EasyLoadingContainer >
56
56
with SingleTickerProviderStateMixin {
57
57
String _status;
58
+ AlignmentGeometry _alignment;
59
+ bool _dismissOnTap, _ignoring;
60
+ Color _maskColor;
58
61
AnimationController _animationController;
62
+
59
63
bool get isPersistentCallbacks =>
60
64
SchedulerBinding .instance.schedulerPhase ==
61
65
SchedulerPhase .persistentCallbacks;
@@ -65,6 +69,14 @@ class EasyLoadingContainerState extends State<EasyLoadingContainer>
65
69
super .initState ();
66
70
if (! mounted) return ;
67
71
_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);
68
80
_animationController = AnimationController (
69
81
vsync: this ,
70
82
duration: EasyLoadingTheme .animationDuration,
@@ -113,12 +125,12 @@ class EasyLoadingContainerState extends State<EasyLoadingContainer>
113
125
});
114
126
}
115
127
128
+ void _onTap () async {
129
+ if (_dismissOnTap) await EasyLoading .dismiss ();
130
+ }
131
+
116
132
@override
117
133
Widget build (BuildContext context) {
118
- AlignmentGeometry _alignment =
119
- (widget.indicator == null && widget.status? .isNotEmpty == true )
120
- ? EasyLoadingTheme .alignment (widget.toastPosition)
121
- : AlignmentDirectional .center;
122
134
return Stack (
123
135
alignment: _alignment,
124
136
children: < Widget > [
@@ -128,16 +140,22 @@ class EasyLoadingContainerState extends State<EasyLoadingContainer>
128
140
return Opacity (
129
141
opacity: _animationController? .value ?? 0 ,
130
142
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
+ ),
141
159
),
142
160
);
143
161
},
0 commit comments