先来看看效果图:
直接上代码吧
import 'package:flutter/material.dart';
enum TransitionType {
inFromLeft,
inFromRight,
inFromTop,
inFromBottom,
scale,
fade,
rotation,
size,
}
Future<T> showAnimationDialog<T>({
@required BuildContext context,
bool barrierDismissible = true,
@Deprecated('') Widget child,
WidgetBuilder builder,
bool useRootNavigator = true,
RouteSettings routeSettings,
TransitionType transitionType,
}) {
assert(child == null || builder == null);
assert(useRootNavigator != null);
assert(debugCheckHasMaterialLocalizations(context));
final ThemeData theme = Theme.of(context, shadowThemeOnly: true);
return showGeneralDialog(
context: context,
pageBuilder: (BuildContext buildContext, Animation<double> animation, Animation<double> secondaryAnimation) {
final Widget pageChild = child ?? Builder(builder: builder);
return SafeArea(
child: Builder(builder: (BuildContext context) {
return theme != null ? Theme(data: theme, child: pageChild) : pageChild;
}),
);
},
barrierDismissible: barrierDismissi