@@ -234,6 +234,7 @@ class YYDialog {
234
234
235
235
Size size = MediaQuery .of (context).size;
236
236
CustomDialog (
237
+ gravity: gravity,
237
238
context: context,
238
239
child: Column (
239
240
textDirection: TextDirection .ltr,
@@ -277,15 +278,18 @@ class CustomDialog {
277
278
Color _barrierColor = Colors .black.withOpacity (.3 );
278
279
RouteTransitionsBuilder _transitionsBuilder;
279
280
bool _barrierDismissible = true ;
281
+ Gravity _gravity = Gravity .bottom;
280
282
281
283
CustomDialog ({
282
284
@required Widget child,
283
285
@required BuildContext context,
284
286
Duration duration,
285
287
Color barrierColor,
286
288
RouteTransitionsBuilder transitionsBuilder,
289
+ Gravity gravity,
287
290
}) : _child = child,
288
- _context = context {
291
+ _context = context,
292
+ _gravity = gravity {
289
293
if (duration != null ) {
290
294
_duration = duration;
291
295
}
@@ -324,17 +328,35 @@ class CustomDialog {
324
328
Animation <double > animation,
325
329
Animation <double > secondaryAnimation,
326
330
Widget child) {
327
- // return FadeTransition(
328
- // opacity: CurvedAnimation(
329
- // parent: animation,
330
- // curve: Curves.easeOut,
331
- // ),
332
- // child: child,
333
- // );
334
- Animation <Offset > custom = Tween <Offset >(
335
- begin: Offset (0.0 , 1.0 ),
336
- end: Offset (0.0 , 0.0 ),
337
- ).animate (animation);
331
+ Animation <Offset > custom;
332
+ switch (_gravity) {
333
+ case Gravity .top:
334
+ custom = Tween <Offset >(
335
+ begin: Offset (0.0 , - 1.0 ),
336
+ end: Offset (0.0 , 0.0 ),
337
+ ).animate (animation);
338
+ break ;
339
+ case Gravity .left:
340
+ custom = Tween <Offset >(
341
+ begin: Offset (- 1.0 , 0.0 ),
342
+ end: Offset (0.0 , 0.0 ),
343
+ ).animate (animation);
344
+ break ;
345
+ case Gravity .right:
346
+ custom = Tween <Offset >(
347
+ begin: Offset (1.0 , 0.0 ),
348
+ end: Offset (0.0 , 0.0 ),
349
+ ).animate (animation);
350
+ break ;
351
+ case Gravity .bottom:
352
+ default :
353
+ custom = Tween <Offset >(
354
+ begin: Offset (0.0 , 1.0 ),
355
+ end: Offset (0.0 , 0.0 ),
356
+ ).animate (animation);
357
+ break ;
358
+ }
359
+
338
360
return SlideTransition (
339
361
position: custom,
340
362
child: child,
0 commit comments