Flutter:在从窗口小部件树中删除或在其生命周期结束时对窗口小部件进行动画处理?

我有一个GridView,它显示网格中项目的自定义窗口小部件。这些项目具有动画,当它们出现在网格中时,可以使用AnimationController.forward()命令将其大小从0缩放到100%。

我的希望是,当网格中的项目列表更改并且列表中不再包含这些项目之一时,我想在将小部件从树中删除之前反转动画,以对其进行动画处理从网格。

我尝试在小部件的dispose方法中执行AnimationController.reverse(),但这似乎不起作用。

在生命周期结束时,是否有任何方法可以使小部件动画化?

huaping1207 回答:Flutter:在从窗口小部件树中删除或在其生命周期结束时对窗口小部件进行动画处理?

您可以尝试在该酒吧https://pub.flutter-io.cn/packages/auto_animated。 您可以将自定义动画与此酒吧结合起来,并能够达到所需的行为。

// With predefined options
LiveGrid.options(
  options: options,// Like GridView.builder,but also includes animation property
  itemBuilder: buildAnimatedItem,// Other properties correspond to the `ListView.builder` / `ListView.separated` widget
  itemCount: itemsCount,gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
    crossAxisCount: 3,crossAxisSpacing: 16,mainAxisSpacing: 16,),);

buildAnimatedItem 可以是您的自定义动画,您可以这样定义:

Widget buildAnimatedItem(
  BuildContext context,int index,Animation<double> animation,) =>
  // For example wrap with fade transition
  FadeTransition(
    opacity: Tween<double>(
      begin: 0,end: 1,).animate(animation),// And slide transition
    child: SlideTransition(
      position: Tween<Offset>(
        begin: Offset(0,-0.1),end: Offset.zero,// Paste you Widget
      child: YouWidgetHere(),);

看看酒吧的自述文件很清楚

本文链接:https://www.f2er.com/3137197.html

大家都在问