handleStackChanged method

dynamic handleStackChanged({
  1. required XBStackChangedEvent event,
  2. required Widget widget,
})
inherited

Implementation

handleStackChanged(
    {required XBStackChangedEvent event, required Widget widget}) {
  if (!isXBRoute(event.route)) {
    // 如果pop或者push的不是XBRoute,不处理
    return;
  }
  if (event.isPush) {
    /// 不能用routeIsMapWidget判断,因为如果是根节点,无法判断
    if (topSecondIsWidget(widget)) {
      willHide();
    }
  } else {
    if (topIsWidget(widget)) {
      willShow();
      return;
    }
    if (routeIsMapWidget(route: event.route, widget: widget)) {
      willDispose();
    }
  }
}