【问题标题】:Flutter: Reorderable AND Animated ListView - any idea?Flutter:可重新排序和动画的 ListView - 有什么想法吗?
【发布时间】:2019-11-05 06:30:29
【问题描述】:

我知道 Flutter 对 ListViews 有不同的方法:

  • 列表视图

  • 动画列表

  • ReorderableListView

但是是否也有可能组合所有不同的功能?

我需要一个 ReorderableListView 来通过拖放重新排序项目,同时能够添加和删除带有动画的项目。

我错过了什么还是没有这样的东西?已经尝试了好几个小时了..

也欢迎任何解决方法。

【问题讨论】:

  • 你试过使用这个包吗? pub.dev/packages/reorderables
  • 看描述中的gif,这个包也没有添加和删除动画。 - 一定有办法……
  • @Tobi 你得到了这种功能的任何解决方案我的列表也是可重新排序的,我想在添加和删除列表项时制作动画,不知道如何获得它。
  • @Tobi 我知道 Parth 刚刚问过你,但我遇到了类似的情况。你找到什么有用的了吗?
  • 不,很遗憾,我没有找到任何有效的方法。但是,我尝试构建一种解决方法,使列表同时位于可重新排序和动画列表中。通常我会显示可重新排序的列表。但是,一旦添加或删除了一个项目,可重新排序的列表小部件就会消失,而动画列表小部件就会出现。添加或删除项目后,可重新排序的列表小部件会再次显示。

标签: list listview flutter dart reorderlist


【解决方案1】:

我还需要一个可以结合所有这些功能的ListView,因为我找不到一个,所以我决定自己创建一个,称为implicitly_animated_reorderable_list,可以在这里找到:

https://pub.dev/packages/implicitly_animated_reorderable_list

该包包含两个ListViewsImplicitlyAnimatedList,它基于AnimatedList,并使用差异算法(MyersDiff)计算两个列表之间的变化,并自动(或“隐式”)在它们之间进行动画处理.因此,您不再需要在 AnimatedListState 上手动调用两次 insertItemremoveItem。然后是 ImplicitlyAnimatedReorderableList,它扩展了此功能并添加了对其项目重新排序的支持。

有关如何使用它们的示例,请参阅存储库中的readmeexample application,因为这将需要一个单一的答案。

这是一个例子(我不得不压缩一下,因为最大文件大小为 2mb):

请注意,这个包还很年轻,我在业余时间开发了它,也就是说它不应该被认为是生产就绪(还)。

【讨论】:

  • 使用此包拖动项目时无法滚动。
  • @SimpleUXApps 是的,至少现在是这样。
  • @bnxm 你的图书馆太棒了!!非常感谢,你救了我的命!也就是说,您写道它还没有准备好生产,我不明白为什么,因为它工作得很好。在生产中使用您的库之前,我应该注意什么?
【解决方案2】:

对于那些仍在寻找结合了 Reorderable 和 Animated ListView 的插件的人。

试试great_list_view。它易于使用并且在我的应用中运行良好,我还检查了代码库,我认为它看起来非常好。

我尝试了上面@bnxm提到的implicitly_animated_reorderable_list插件,但是当拖动项目的高度不受限制时它会出现问题。

【讨论】:

    【解决方案3】:

    试试新的 great_list_view 库。它仍然是一个 alpha 版本,但它工作得很好,并在数据更改时提供自动动画,在动画时也重新排序,项目计算的索引和偏移量等等。试试看!

    implicitly_animated_reorderable 写得不好,漏洞百出,并且使用了舞台外的小部件和其他技巧,great_list_view 没有使用任何技巧并且很有魅力!

    【讨论】:

      猜你喜欢
      • 2021-10-27
      • 2015-08-06
      • 2010-11-15
      • 2020-08-16
      • 2019-05-23
      • 2021-02-05
      • 1970-01-01
      • 1970-01-01
      • 2021-05-13
      相关资源
      最近更新 更多