push<T> method

void push<T>({
  1. required Widget page,
  2. ResultCallBack? onResult,
  3. String? name,
  4. Object? arguments,
  5. String? restorationId,
  6. bool maintainState = true,
  7. bool fullscreenDialog = false,
  8. bool allowSnapshotting = true,
})

推出一个新页面到导航栈

Implementation

void push<T>(
    {required Widget page,
    ResultCallBack? onResult,
    String? name,
    Object? arguments,
    String? restorationId,
    bool maintainState = true,
    bool fullscreenDialog = false,
    bool allowSnapshotting = true}) {
  final routeSettings = RouteSettings(
      name: name ?? page.runtimeType.toString(), arguments: arguments);
  final target = MaterialPage(
      child: page,
      name: routeSettings.name,
      arguments: routeSettings.arguments,
      restorationId: restorationId,
      maintainState: maintainState,
      fullscreenDialog: fullscreenDialog,
      allowSnapshotting: allowSnapshotting);
  _pages.add(target);
  _result[target.hashCode] = onResult;
  notify();
}