PqPreLoader constructor

PqPreLoader(
  1. ScrollController scrollController, {
  2. double preloadDistanceLimit = DEFAULT_PRELOAD_DISTANCE_LIMIT,
  3. required LoadMoreListener loadMoreListener,
})

构造方法,需要传入滚动控制器ScrollController scrollController和加载更多loadMoreListener的回调, 以及一个有预设值的距离preloadDistanceLimit

Implementation

PqPreLoader(
  this.scrollController, {
  this.preloadDistanceLimit = DEFAULT_PRELOAD_DISTANCE_LIMIT,
  required this.loadMoreListener,
})  {
  scrollController.addListener(() {
    if (!scrollController.hasClients) return;

    double after = scrollController.position.extentAfter;
    double pixels = scrollController.position.pixels;

    /// 是向下滑动,且剩余可滑动距离低于设置的限制值
    if (pixels > 0 &&
        pixels > _lastScrollPixels &&
        after < preloadDistanceLimit) {
      loadMoreListener();
    }
    _lastScrollPixels = pixels;
  });
}