off<T> method
- Widget page(), {
- bool? opaque,
- Transition? transition,
- Curve? curve,
- bool? popGesture,
- String? id,
- String? routeName,
- dynamic arguments,
- List<
BindingsInterface> bindings = const <BindingsInterface>[], - bool fullscreenDialog = false,
- bool preventDuplicates = true,
- Duration? duration,
- double gestureWidth(
- BuildContext context
Navigation.pushReplacement() shortcut .
Pop the current page and pushes a new page
to the stack
It has the advantage of not needing context, so you can call from your business logic
You can set a custom transition
, define a Tween curve
,
and a transition duration
.
You can send any type of value to the other route in the arguments
.
Just like native routing in Flutter, you can push a route
as a fullscreenDialog
,
id
is for when you are using nested navigation,
as explained in documentation
If you want the same behavior of ios that pops a route when the user drag,
you can set popGesture
to true
If you're using the BindingsInterface api, you must define it here
By default, GetX will prevent you from push a route that you already in,
if you want to push anyway, set preventDuplicates
to false
Implementation
Future<T?>? off<T>(
Widget Function() page, {
bool? opaque,
Transition? transition,
Curve? curve,
bool? popGesture,
String? id,
String? routeName,
dynamic arguments,
List<BindingsInterface> bindings = const <BindingsInterface>[],
bool fullscreenDialog = false,
bool preventDuplicates = true,
Duration? duration,
double Function(BuildContext context)? gestureWidth,
}) {
routeName ??= '/${page.runtimeType}';
routeName = cleanRouteName(routeName);
if (preventDuplicates && routeName == currentRoute) {
return null;
}
return searchDelegate(id).off(
page,
opaque: opaque ?? true,
transition: transition,
curve: curve,
popGesture: popGesture,
id: id,
routeName: routeName,
arguments: arguments,
bindings: bindings,
fullscreenDialog: fullscreenDialog,
preventDuplicates: preventDuplicates,
duration: duration,
gestureWidth: gestureWidth,
);
}