【发布时间】:2022-01-02 06:31:39
【问题描述】:
我有 CustomScrollView 并在其中有两个 SliverList,这是因为当我滚动到顶部并将新元素下载到列表时,这些新元素将添加到顶部列表中,并且在底部列表中保持滚动(保持在底部列表的顶部) 导致 CustomScrollView 在底部列表中居中。
我在我正在渲染的元素的自定义滚动视图周围使用 bloc。 问题是,当我在背景上下载新元素并且人在第二个列表中滚动时,它会立即滚动到第二个列表的顶部。我不想这样,我想让他保持滚动位置,然后告诉他“嘿,上面有新信息”。
CustomScrollView(
center: _mainListKey,
controller: widget.scrollController,
physics: const AlwaysScrollableScrollPhysics(),
slivers: [
SliverList(
delegate: SliverChildBuilderDelegate(
(BuildContext context, int index) =>
NewElement(),
childCount: newElements?.length ?? 0,
),
),
SliverList(
key: _mainListKey,
delegate: SliverChildBuilderDelegate(
(BuildContext context, int index) => OldElement(),
childCount: oldElements.length,
),
),
],
),
【问题讨论】: