繁体   English   中英

如何为 Flutter SliverList 中的元素设置动画?

[英]How to animate elements in a Flutter SliverList?

我有一个SliverList ,当用户滚动列表时,我将它与SliverAppBar一起使用来为应用栏设置动画(实际上是标准的 slivers 用例,没什么特别的)。

现在我想为SliverList中的元素添加动画。 例如,添加项目时的水平滑动过渡,或重新排序列表时元素之间的一种垂直“随机播放”。 AnimatedList提供其中一些功能,但 SliverList 不提供。

我对框架的理解是,可能可以将提供给SliverList的元素包装在AnimatedWidget (或一些类似的小部件)中以动画化更改。 但是我对 Flutter 动画的了解还是有点太新鲜了,所以我在寻求帮助。

这是我的代码的一部分。 我想为下面的GameScoreWidget实例设置动画。

SliverList(
  delegate: SliverChildBuilderDelegate((BuildContext context, int index) {
    if (index == 0) {
      return ListReorderWidget(viewModel: viewModel);
    }
    else if (!viewModel.isLatestGame(index-1)) {
      return GameScoreWidget(position: index-1, viewModel: viewModel);
    }
    else
      return Dismissible(
        direction: DismissDirection.endToStart,
        child: GameScoreWidget(position: index-1, viewModel: viewModel),
        key: UniqueKey(),
        background: Container(color: Colors.red),
        onDismissed: (direction) {
          onGameDismissed(context);
        },
      );
  },
  childCount: viewModel.games.length+1,
  ),
)

我找不到任何与我的问题相关的答案。 我发现这个问题与SliverList 中的动画变化有关

但是没有答案...

利用

https://pub.dev/packages/auto_animated

这个 package 为您提供LiveSliverList()可用于轻松设置 sliverList 的动画

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM