我有一个列,里面装着许多容器。顶部和底部的容器总是显示出来,但是容器之间的容器位于一个可见性小部件中。如果用户点击屏幕,中间的容器将变得可见,然后在下一个点击中再次变得不可见。因此,从本质上说,该列每次被点击时都会扩展和收缩。
我希望扩张和收缩发生得更优雅一些--目前,当中间容器突然出现时,它看起来非常严酷。有什么方法可以使容器变得可见和隐藏吗?还是应该考虑使用与可见性完全不同的Widget?
发布于 2022-07-14 14:03:45
您可以使用动画交叉淡出。将第一个子部件设置为SizedBox.shrink(),第二个子子作为您希望显示的小部件,它应该按预期进行动画。并根据需要进行切换
bool _first = true;
AnimatedCrossFade(
duration: const Duration(seconds: 1),
firstChild: const SizedBox.shrink(),
secondChild: const FlutterLogo(style: FlutterLogoStyle.stacked, size: 100.0),
crossFadeState: _first ? CrossFadeState.showFirst : CrossFadeState.showSecond,
)将_first的值更改为true或false。
https://stackoverflow.com/questions/72981247
复制相似问题