【问题标题】:Flutter Pagination on click of a "next page" button单击“下一页”按钮时颤动分页
【发布时间】:2023-04-03 09:11:01
【问题描述】:

我知道如何使用无限滚动来实现flutter pagination,我们只是继续存储lastDocument(最后获取的文档),并且每当我们在滚动时到达列表末尾时,我们再次调用fetchData 函数这将返回lastDocument之后开始的数据。

注意:我使用firebase firestore 来获取和存储数据。 因此,我将使用 firestore 查询 startAfterDocument,我们将在其中传递最后收到的文档。

但是我想要实现的是这样的,

在这里,问题是每当我点击“下一步”按钮或特定编号的按钮时,例如,从page 1 直接到page 10。在获取第 10 页的数据时,我们无法存储第一页的最后一个文档。我们希望第 9 页的最后一个文档首先能够获取第 10 页的数据。

所以,我认为这不是正确的方法,因为我们必须在获取第 10 页的数据之前获取 8 个额外页面的数据。

应该如何实现这样的东西?

【问题讨论】:

  • 感谢@pskink 的建议。但是如果我跳过一页,就会出现问题(正如我在问题中解释的那样)。所以,如果我转到最后一页,那意味着我必须一次获取所有数据,这样效率不高。
  • 没有问题 - 你只需要获取当前页面的数据 - 如果你在第 0 页,你获取页面 0 的数据 - 如果你想跳转到第 7 页,你获取该页面的数据only - 不需要为 1,2,3,4,5,6 获取数据
  • 要获取第 n 页的数据,我首先需要第 (n-1) 页的 lastDocument,这样我就可以使用 firebase 查询“startAfterDocument”。
  • 我不明白你说的startAfterDocument是什么意思
  • 这是一个我们可以在 Firebase Firestore 中使用的查询,我们可以在收到 lastDocument 之后开始获取数据。例如,databaseReference.collection("abc").startAfterDocument(lastDoc).limit(10).get();

标签: flutter google-cloud-firestore pagination flutter-layout flutter-web


【解决方案1】:

我搜索了这个,顺便说一句,这是一个很好的问题。

检查一次this

【讨论】:

  • 我知道这个包,但是我想实现的不一样。 :D
猜你喜欢
  • 2022-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-04
  • 1970-01-01
  • 2013-10-04
相关资源
最近更新 更多