颤动无限滚动-滚动侦听器触发器

时间:2019-12-06 13:21:44

标签: flutter flutter-dependencies

我正在构建一个无限列表视图,每当用户到达供稿中的某个位置(例如接近90%)时,我都会在此进行后端调用。我正在使用ScrollController并将类似此函数的内容附加到侦听器:

void _onScroll() {

    var triggerFetchMoreSize =
        0.9 * _scrollController.position.maxScrollExtent;
    if (_scrollController.position.pixels >
        triggerFetchMoreSize) {
      print("fetch more after you reached 90% ");
    }

  }

但这在Feed滚动中多次触发。如果用户上下滚动,则可以触发相同的确切请求。我该如何处理?

如何确保我只为每个正确的触发器发出一个后端请求(例如一个初始请求+当用户滚动到当前Feed的90%左右时才一个+)

1 个答案:

答案 0 :(得分:0)

 @override
  void initState() {
    super.initState();
    // connect(sourceUser);
    _scrollController.addListener(() {
      var triggerFetchMoreSize =
          0.7 * _scrollController.position.maxScrollExtent;

      if (_scrollController.position.pixels ==
          _scrollController.position.maxScrollExtent) {
        print(10);
        pagination();
      }
    });
  
  }

  @override
  void dispose() {
    _scrollController.dispose();
    super.dispose();
  }

请使用dispose方法停止多次加载。