【问题标题】:Flutter List View Builder Scroll Controller is not workingFlutter Listview Builder Scrollcontroller 不工作
【发布时间】:2020-11-21 17:07:17
【问题描述】:

我有一个类似 Instagram 的应用,顶部有故事,然后提供数据。我希望我的提要列表视图滚动到函数的顶部(即按钮单击或其他)。

  ScrollController _feedController;
 
  @override
  void initState() {
    _feedController = new ScrollController();
    _feedController.addListener(() {
      print("scrolling");
    });
    _fetchData();
    super.initState();
  }

  // This is in the build function.
  return ListView.builder(
      padding: EdgeInsets.all(0.0),
      shrinkWrap: true,
      controller: _feedController,
      physics: ClampingScrollPhysics(),
      itemCount: _listFeed.length,
      itemBuilder: (BuildContext context, int index) {
        return ProductWidget(
          product: _listFeed[index],
          navigateOnImage: true,
        );
      },
    );

  // This function should scroll the list view to the top.
  refresh() {
    _fetchData();
    WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
      _feedController.animateTo(
        0.0,
        duration: Duration(milliseconds: 300),
        curve: Curves.easeOut,
      );
    });
    print("home screen refreshed");
  }

我在 initState() 上初始化我的控制器并添加了一个监听器。侦听器和控制器的 animateTo() 函数都不起作用。我也尝试过使用 WidgetsBinding.instance.addPostFrameCallback()。我错过了什么……??

【问题讨论】:

    标签: flutter listview scroll scrollcontroller


    【解决方案1】:

    您需要在 ScrollController 的 addListener 中调用 fetchData 函数。下面是一个正确使用 ScrollController 的例子:

    @override
      void initState() {
        _feedController = new ScrollController()..addListener(function);
        super.initState();
      }
    
    
    void function(){
       print("scrolling");
       _fetchData();
    }
    

    【讨论】:

    • 监听器只是让我可以所以如果它打印或不打印什么.. 我真正想做的只是在我的 refresh() 函数中将我的列表视图滚动到顶部。我不需要每次用户滚动时都获取数据。
    • 然后尝试 _controller.position.extentAfter。将此变量放入 if 条件并发送请求。
    猜你喜欢
    • 2021-08-22
    • 2023-01-25
    • 1970-01-01
    • 2021-06-16
    • 2022-10-04
    • 2021-02-06
    • 1970-01-01
    • 2022-11-16
    • 2021-08-14
    相关资源
    最近更新 更多