微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用动画显示/隐藏 ListView 中的小部件

如何解决使用动画显示/隐藏 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 之间正确交换,该值在 Button 按下时发生变化,并且第一个 ListTile 将始终显示这是所需的行为。有没有办法给它添加动画。我不确定为什么上述动画不起作用。 附注 持续时间设置为足够的时间让动画可见,所以这不是问题。

解决方法

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。