@@ -234,6 +234,7 @@ class YYDialog {
234234
235235 Size size = MediaQuery .of (context).size;
236236 CustomDialog (
237+ gravity: gravity,
237238 context: context,
238239 child: Column (
239240 textDirection: TextDirection .ltr,
@@ -277,15 +278,18 @@ class CustomDialog {
277278 Color _barrierColor = Colors .black.withOpacity (.3 );
278279 RouteTransitionsBuilder _transitionsBuilder;
279280 bool _barrierDismissible = true ;
281+ Gravity _gravity = Gravity .bottom;
280282
281283 CustomDialog ({
282284 @required Widget child,
283285 @required BuildContext context,
284286 Duration duration,
285287 Color barrierColor,
286288 RouteTransitionsBuilder transitionsBuilder,
289+ Gravity gravity,
287290 }) : _child = child,
288- _context = context {
291+ _context = context,
292+ _gravity = gravity {
289293 if (duration != null ) {
290294 _duration = duration;
291295 }
@@ -324,17 +328,35 @@ class CustomDialog {
324328 Animation <double > animation,
325329 Animation <double > secondaryAnimation,
326330 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+
338360 return SlideTransition (
339361 position: custom,
340362 child: child,
0 commit comments