didPush method

  1. @override
void didPush(
  1. Route route,
  2. Route? previousRoute
)
override

The Navigator pushed route.

The route immediately below that one, and thus the previously active route, is previousRoute.

Implementation

@override
void didPush(Route<dynamic> route, Route<dynamic>? previousRoute) {
  Logger.d("didPush in smartechPX");
  super.didPush(route, previousRoute);
  try {
    BuildContext? context;
    if (route.navigator != null) {
      context = route.navigator?.context;
      if (context != null && context is Element) {
        PxContextAware.instance.currentElement = context;
      }
    }

    PxAnchorWidgetTracker.instance.onScreenChange();

    // update context after the frame callback if the context is empty on didPush call
    WidgetsBinding.instance.addPostFrameCallback((_) {
      if (route.navigator != null) {
        try {
          context = route.navigator?.context;
          if (context != null && context is Element) {
            PxContextAware.instance.currentElement = context as Element?;
          }
        } catch (e) {
          Logger.d('Error in didPush $e');
        }
      }
    });
  } catch (e) {
    Logger.d('Error in didPush $e');
  }
}