gpt4 book ai didi

Flutter ScrollController 在 NestedScrollView 中的位置

转载 作者:行者123 更新时间:2023-12-05 01:41:44 25 4
gpt4 key购买 nike

我有一个 NestedScrollView,其中包含一个 SliverAppBar 和一个 TabBarView,每个选项卡都包含一个无限加载列表。现在我只有一个 ScrollController 附加到 NestedScrollView,列表小部件读取这个 Controller 的滚动位置。

无限加载逻辑使用 controller.position.extentAfter 来决定何时从 API 获取数据。但是对于多个选项卡,我得到了错误

附加到多个 ScrollView 的 ScrollController。

我尝试阅读有关 controller.positions 的内容,但无法理解可用的两行文档。我的问题是,是否可以在 TabBarView 中访问每页的滚动位置,或者我应该为每个页面使用单独的 ScrollController 而忘记条子的正确滚动?

最佳答案

您不能对不同的 ScrollView 使用相同的 Controller 。这就是您收到此错误“ScrollController attached to multiple scroll views.”的原因但是,您可以监听 PrimaryScrollController 并更新您的无限列表以从 API 获取更多数据。如果您查看 NestedScrollView 的代码,您会在那里找到 PrimaryScrollController。

NestedScrollView(
body: Builder(builder: (BuildContext context) {
final innerScrollController = PrimaryScrollController.of(context);
// Use the innerScrollController to listen to the scrolling.
// This would be your controller for list. You can listen to this controller to know whether the list has reached maxScrollExtent and fetch data from API.
}),
);

For reference:

The [body] is built in a context that provides a [PrimaryScrollController] that interacts with the [NestedScrollView]'s scroll controller. Any [ListView] or other [Scrollable]-based widget inside the [body] that is intended to scroll with the [NestedScrollView] should therefore not be given an explicit [ScrollController], instead allowing it to default to the [PrimaryScrollController] provided by the [NestedScrollView].

关于Flutter ScrollController 在 NestedScrollView 中的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53800734/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com