首页 > 解决方案 > 使用动画在 ListView 中显示/隐藏小部件

问题描述

我有 ListTiles 的 ListView,我只想显示第一个。然后在单击按钮后,我想让其他 ListTiles 也出现在 ListView 中(它们一开始是空容器)。

我尝试在 ListTile 和空容器之间使用 AnimatedCrossFade 和 AnimatedSwitcher。我也尝试了一些软件包,但没有运气。我尝试的所有操作都将 Container 与 ListTile 交换,但没有动画。

ListView.separated(
  physics: ClampingScrollPhysics(),
  shrinkWrap: true,
  itemBuilder: (context, index2) => index2 < (!seeAll ? 1 : length)
      ? ListTile(
          //stuff
        )
      : Container(),
  separatorBuilder: (context, index) =>
      seeAll ? Divider() : Container(),
  itemCount: length,
)

这将根据在按下按钮时更改的 seeAll 值在 ListTile 和 Container 之间正确交换,并且将始终显示第一个 ListTile 所需的行为。有没有办法给它添加动画。我不确定为什么上述动画不起作用。PS 持续时间设置为动画可见的足够时间,所以这不是问题。

标签: flutterlistviewanimationwidget

解决方案


您可以尝试 Visible 小部件,但我不确定动画:

itemBuilder: (context, index2) => 
       Visible(
           visible : index2 < (!seeAll ? 1 : length)
           child : ListTile(
              //stuff
            )
       )

推荐阅读