Skip to content

Commit 091fcf9

Browse files
authored
Merge pull request #27 from OpenFlutter/fix-position-for-show-toast-widget
Fix param position of showToastWidget
2 parents 99440ce + 6e20d5e commit 091fcf9

File tree

1 file changed

+38
-24
lines changed

1 file changed

+38
-24
lines changed

lib/src/toast.dart

Lines changed: 38 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -164,21 +164,18 @@ ToastFuture showToast(
164164
_ToastTheme.of(context).textDirection ??
165165
TextDirection.ltr;
166166

167-
Widget widget = Align(
168-
alignment: position.align,
169-
child: Container(
170-
margin: const EdgeInsets.all(50.0),
171-
decoration: BoxDecoration(
172-
color: backgroundColor,
173-
borderRadius: BorderRadius.circular(radius),
174-
),
175-
padding: textPadding,
176-
child: ClipRect(
177-
child: Text(
178-
msg,
179-
style: textStyle,
180-
textAlign: textAlign,
181-
),
167+
Widget widget = Container(
168+
margin: const EdgeInsets.all(50.0),
169+
decoration: BoxDecoration(
170+
color: backgroundColor,
171+
borderRadius: BorderRadius.circular(radius),
172+
),
173+
padding: textPadding,
174+
child: ClipRect(
175+
child: Text(
176+
msg,
177+
style: textStyle,
178+
textAlign: textAlign,
182179
),
183180
),
184181
);
@@ -218,6 +215,11 @@ ToastFuture showToastWidget(
218215

219216
GlobalKey<__ToastContainerState> key = GlobalKey();
220217

218+
widget = Align(
219+
child: widget,
220+
alignment: position.align,
221+
);
222+
221223
entry = OverlayEntry(builder: (ctx) {
222224
return IgnorePointer(
223225
child: _ToastContainer(
@@ -326,20 +328,27 @@ class __ToastContainerState extends State<_ToastContainer>
326328
}
327329

328330
var mediaQueryData = MediaQueryData.fromWindow(ui.window);
329-
Widget container = AnimatedContainer(
330-
padding: EdgeInsets.only(bottom: mediaQueryData.viewInsets.bottom),
331-
duration: _opacityDuration,
332-
child: w,
333-
);
331+
Widget container = w;
334332

333+
var edgeInsets = EdgeInsets.only(bottom: mediaQueryData.viewInsets.bottom);
335334
if (offset > 0) {
336-
container = Padding(
337-
padding: EdgeInsets.only(top: offset),
335+
var padding = EdgeInsets.only(top: offset) + edgeInsets;
336+
337+
container = AnimatedPadding(
338+
duration: _opacityDuration,
339+
padding: padding,
338340
child: container,
339341
);
340342
} else if (offset < 0) {
341-
container = Padding(
342-
padding: EdgeInsets.only(bottom: offset.abs()),
343+
container = AnimatedPadding(
344+
duration: _opacityDuration,
345+
padding: EdgeInsets.only(bottom: offset.abs()) + edgeInsets,
346+
child: container,
347+
);
348+
} else {
349+
container = AnimatedPadding(
350+
duration: _opacityDuration,
351+
padding: edgeInsets,
343352
child: container,
344353
);
345354
}
@@ -368,6 +377,11 @@ class ToastPosition {
368377

369378
static const top =
370379
const ToastPosition(align: Alignment.topCenter, offset: 75.0);
380+
381+
@override
382+
String toString() {
383+
return "ToastPosition [ align = $align, offset = $offset ] ";
384+
}
371385
}
372386

373387
class _ToastTheme extends InheritedWidget {

0 commit comments

Comments
 (0)