【问题标题】:Scroll Listview to bottom after items loaded in flutter在颤动中加载项目后将Listview滚动到底部
【发布时间】:2020-09-18 09:02:57
【问题描述】:

我想在 Widget 渲染后将 Listview 滚动到底部。 尝试了下面的代码,但它在 Listview 呈现之前被调用。

  ScrollController _lvScrollCtrl = new ScrollController();
  @override
  void initState() {
    getData();
    loadListviewData();
    WidgetsBinding.instance.addPostFrameCallback((_) {
      _lvScrollCtrl.animateTo(_lvScrollCtrl.position.maxScrollExtent,
          duration: const Duration(milliseconds: 500), curve: Curves.easeOut);
    });
    super.initState();
  }

我也尝试过将 Listview 的 reverse 属性设置为 true。但这会将所有项目带到 Expanded 小部件的底部。 我只是想要一个普通的 Listview 向下滚动到最后以显示 Load 的最新更新。 :/

【问题讨论】:

    标签: listview flutter flutter-layout flutter-animation


    【解决方案1】:

    我在 return 语句之前将下面的代码移到了 build 函数中,它运行良好。刚刚实现 addPostFrameCallback 回调只会在当前帧结束后调用一次。所以我需要一次又一次地设置它以保持它的调用。

      WidgetsBinding.instance.addPostFrameCallback((_) {
          _lvScrollCtrl.animateTo(_lvScrollCtrl.position.maxScrollExtent,
              duration: const Duration(milliseconds: 500), curve: Curves.easeOut);
        });
    

    【讨论】:

      猜你喜欢
      • 2017-12-21
      • 2015-09-10
      • 1970-01-01
      • 2020-09-27
      • 1970-01-01
      • 2016-11-22
      • 2022-01-03
      • 1970-01-01
      • 2018-02-27
      相关资源
      最近更新 更多