processNotification method

void processNotification(
  1. ScrollNotification notification,
  2. ScrollController sender
)

Implementation

void processNotification(
    ScrollNotification notification, ScrollController sender) {
  if (notification is ScrollStartNotification && !_scrollingActive) {
    _scrollingController = sender;
    _scrollingActive = true;
    return;
  }

  if (identical(sender, _scrollingController) && _scrollingActive) {
    if (notification is ScrollEndNotification) {
      _scrollingController = null;
      _scrollingActive = false;
      return;
    }

    if (notification is ScrollUpdateNotification &&
        _scrollingController != null) {
      registeredScrollControllers.forEach((controller) => {
            if (!identical(_scrollingController, controller) &&
                controller.hasClients)
              controller..jumpTo(_scrollingController!.offset)
          });
      return;
    }
  }
}