【问题标题】:AnimatedList auto scrolling to last item and backAnimatedList 自动滚动到最后一项并返回
【发布时间】:2022-07-14 17:05:49
【问题描述】:

我已经用 SlideTransition 像这样实现了一个动画列表

@override
Widget build(BuildContext context) {
  return Expanded(
    child: Container(
      child: ListView(
        children: [
          // Other widgets
          animatedList(),
        ],
      ),
    ),
  );
}

Widget animatedList() {
  return AnimatedList(
    shrinkWrap: true,
    key: _myKeyList,
    initialItemCount: _myItemsList.length,
    itemBuilder: (context, index, animation) {
      return SlideTransition(
        position: animation.drive(_offset),
        child: _buildMyItemTile[index],
      );
    },
  );
}

其中 _offset 变量是补间动画。列表中的每一项都会以 500 毫秒的延迟插入并设置动画。

现在,当所有项目都添加到 AnimatedList 时,我希望 AnimatedList 内容从第一个项目自动滚动到最后一个(并返回)以显示其所有内容。 我该怎么办?

【问题讨论】:

    标签: flutter flutter-listview flutter-animatedlist


    【解决方案1】:

    您可以将 ScrollController 添加到 AnimatedList,如下所示:

    final ScrollController scrollController = new ScrollController();

    动画列表( 收缩包装:是的, 键:_myKeyList, 控制器:滚动控制器, ...

    那么你可以这样做:

    scrollController!.animateTo(scrollController!.position.maxScrollExtent, 持续时间:持续时间(秒:2), 曲线:Curves.easeInOut);

    您可以向 ScrollController 添加一个侦听器,您可以在其中检测是否到达列表末尾并开始滚动回顶部。

    请参阅此文档:

    ScrollController example

    【讨论】:

      猜你喜欢
      • 2021-01-18
      • 2010-12-21
      • 2016-01-22
      • 2022-09-29
      • 1970-01-01
      • 1970-01-01
      • 2022-01-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多