mirror of
https://github.com/Iconica-Development/flutter_login_widget.git
synced 2025-05-19 13:43:44 +02:00
59 lines
1.4 KiB
Dart
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),
|
||
|
),
|
||
|
);
|
||
|
}
|
||
|
}
|