flutter_login_widget/lib/extensions/widget.dart
2022-09-20 16:32:46 +02:00

59 lines
1.4 KiB
Dart

import 'package:flutter/material.dart';
class NavigateWidgetMixin {
void navigateFadeTo(
BuildContext context,
Function buildChild, {
String? routeName,
bool? opaque,
Color? barrierColor,
}) {
Navigator.of(context).push(
PageRouteBuilder(
opaque: opaque ?? true,
barrierColor: barrierColor,
settings: RouteSettings(name: routeName),
transitionDuration: const Duration(milliseconds: 500),
transitionsBuilder: (
context,
animation,
secondamination,
child,
) =>
FadeTransition(
opacity: animation,
child: child,
),
pageBuilder: (BuildContext ctx, animation, __) => buildChild(ctx),
),
);
}
void navigateFadeToReplace(
BuildContext context,
Function buildChild, {
bool popRemaining = false,
}) {
if (popRemaining) {
Navigator.of(context).popUntil((route) => route.isFirst);
}
Navigator.of(context).pushReplacement(
PageRouteBuilder(
transitionDuration: const Duration(milliseconds: 500),
transitionsBuilder: (
context,
animation,
secondamination,
child,
) =>
FadeTransition(
opacity: animation,
child: child,
),
pageBuilder: (BuildContext ctx, animation, __) => buildChild(ctx),
),
);
}
}