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

时间:2019-11-07 22:31:47

标签: flutter flutter-animation flutter-sliver flutter-animatedlist

首先,我很熟悉Flutter。在过去的几周中,我一直在开发应用程序,现在我开始研究动画,以使该应用程序对用户更有趣。

我有一个 SliverList ,当用户滚动列表时,它与 SliverAppBar 一起使用以使应用程序栏动起来(真正的标准用例是,没有花哨)< / p>

现在,我想向SliverList中的元素添加动画。例如,当添加项目时,水平滑动过渡,或者当列表重新排序时,元素之间的一种垂直“随机播放”(我的意思是:p并没有更好的英语单词)。 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,
          ),
        )

我找不到与我的问题有关的任何答案。我发现与Animating changes in a SliverList

相关的问题

但没有答案...

感谢任何帮助或外部参考:)

谢谢。

1 个答案:

答案 0 :(得分:0)

使用

https://pub.dev/packages/auto_animated

此软件包为您提供了LiveSliverList(),可用于轻松为sliverList设置动画