initScrollController method

ScrollController? initScrollController()

Implementation

ScrollController? initScrollController() {
  if (mode != TableMode.paginationScroll) {
    return null;
  }

  ScrollController controller = ScrollController();
  controller.addListener(() {
    if (controller.position.pixels == controller.position.maxScrollExtent &&
        _needToLoadMoreData()) {
      goToNextPage();
    }
  });
  // Verify if controller can be scrolled
  SchedulerBinding.instance.addPostFrameCallback(
    (timeStamp) {
      if ((controller.hasClients) && (controller.position.haveDimensions)) {
        if (controller.position.maxScrollExtent == 0) {
          if (_needToLoadMoreData()) {
            goToNextPage();
          }
        }
      }
    },
  );
  return controller;
}