2017-05-29 56 views
-2

我想要当用户向上滚动的名单,然后插入项目的顶部和删除项目在列表的底部。 我该怎么做扑翼如何在列表中向上/向下滚动时向列表中插入和删除项目?

itemBuilder在列表中不好,因为那总是插入,但从不删除(或将删除方法插入?)。 或者我使用sliverlist(如何?)或足够使用ListView的滚动控制器? 哪个是最好的方法?

所以:

  • 哪个邮件列表使用:ListView控件/ AnimatedList/SliverList?
  • 如何处理列表上的向上/向下滚动?

重点是:我不想在同一时间添加更多的1000个项目,但只有至少显示在屏幕上。当用户在列表中滚动时,向儿童添加新的项目并从隐藏的儿童中移除旧的项目。因此,列表中的孩子只包含出现的少量项目。

+0

请提供您到目前为止获得的代码。 –

+0

没有code.I简单的想创建一些ListView或AnimatedList/SilverList,当滚动列表然后插入和删除项目。 – ZeroProcess

+0

您能否解释*为什么*您想删除这些项目?你是否担心他们会消耗太多资源,或者你试图实现某种不寻常的效果?当用户尝试回滚以查看您移除的项目时,您希望发生什么? –

回答

1

ListView的渲染过程将仅渲染可见项目。

你应该看这个视频https://www.youtube.com/watch?v=F26pbGaSzfM

+0

我以前看过这个视频,但是这对我并不好,因为视频使用itemBuilder只添加新项目来列出子项,但是不会删除。 所以我不想包含列表子项中的所有项目,只有少数出现的项目,因此如果我不呈现隐藏的项目,则不够。 – ZeroProcess

+0

好的,您应该首先查看小部件的生命周期以及Flutter的工作原理(https://docs.google.com/presentation/d/1cw7A4HbvM_Abv320rVgPVGiUP2msVs7tfGbkgdrTy0I/edit#slide=id.g70d668005_2_22)。基本上,如果你只想要一个10件物品的列表,你只需要用物品建立一个列表,那么你可以更新你的列表并调用'setState'来刷新视图 –

+0

是的,我知道,我不知道的重要事情* *如何处理滚动**。 – ZeroProcess

1

反应到您的评论你有兴趣在一个延迟加载的ListView只建立它的孩子,当他们实际上是可见的。我认为最好看看ListView.builder。在ListView的描述中明确指出:

ListView.builder需要一个IndexedWidgetBuilder,它可以按需构建子组件。此构造函数适用于具有大量(或无限)数量的子级的列表视图,因为仅为实际可见的子级调用构建器。

这听起来像你想要的行为,不是吗?

相关问题