我正在通过重写旧的应用程序来学习Flutter。主屏幕是一张卡片的ListView,可以向左或向右滑动Tinder。进行刷卡时,图形指示器会显示刷卡的程度。当平移手势结束于速度阈值之上时,将播放卡片式动画,然后从列表的项目存储中删除该项目。
我想通过将项目的高度降低到零来为该项目的删除制作动画。
我尝试了Dismissable小部件,但用户应该能够以二维方式拖动卡片,而不仅仅是沿水平轴拖动。
接下来,我使用tutorial尝试了一个AnimatedList,但是:从列表中删除该项目时,该卡不再显示在屏幕上;可见的只是滑动指示器图像。但是,要删除AnimatedList中的内容,需要创建一个新的小部件,并且该新的小部件将重置其“滑动状态”,因此,在将其高度动画化为零之前,该卡会忽然闪烁。
我喜欢AnimatedList方法。 如何告诉删除回调仅对已经存在的小部件的大小进行动画处理?还是保存小部件状态并在重新创建小部件时再次加载?
这是一堆代码。 AnimatedList内容位于bink_list
中,滑动处理内容位于swipe_container
中。 https://gist.github.com/incidentist/85ecb5e44309b349b360e0ecbf6f15a4
谢谢!