gpt4 book ai didi

listview - flutter 。在非常大的 ListView 上设置 ListView 初始位置

转载 作者:行者123 更新时间:2023-12-03 04:01:41 27 4
gpt4 key购买 nike

我想创建一个几乎无限的元素列表,但我想将列表的初始位置设置为某个特定元素。像这张图片:

ListView

其中索引 0 将是初始位置,并且此列表可能会也可能不会在两个方向上延伸很长。

我可以像这样创建我的元素:

  Widget build_tile(int i){
return Container(child:Text(i.toString()));
}

我的列表应该是这样的

ListView.builder(
itemBuilder: (context, i) {
return build_tile(i-offset);
},
scrollDirection: Axis.horizontal,
),

对于图片中的示例,offset 为 2,但我如何设置列表的开始位置?

TLDR;如何制作一个很长的列表 ListView,如 1从某个元素开始?

谢谢!

最佳答案

您可以设置 ScrollController's 之一属性:initialScrollOffset

但前提是你知道目标item/index的偏移位置。

ScrollController _controller = ScrollController(initialScrollOffset: itemHeight * index)

ListView.builder(
controller: _controller,
...
),

(请注意,此示例假设您的列表小部件的大小是恒定大小,但如果您的列表中没有恒定的小部件大小,那么您必须能够计算出的最终偏移位置你的目标项目——那是另一个问题)

或者,如果您希望它始终是最后一个项目/索引,那么就容易多了:

ScrollController _controller = ScrollController(initialScrollOffset: _controller.position.maxScrollExtent)

关于listview - flutter 。在非常大的 ListView 上设置 ListView 初始位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55799477/

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