颤振在非常大的ListView上设置ListView初始位置
我想创建一个几乎无限的元素列表,但我想将列表的初始位置设置为某个特定的元素。类似于此图像: 其中,索引0将是初始位置,该列表可能在两个方向上延伸很长,也可能不会延伸很长 我可以创建我的元素,如:颤振在非常大的ListView上设置ListView初始位置,listview,dart,flutter,Listview,Dart,Flutter,我想创建一个几乎无限的元素列表,但我想将列表的初始位置设置为某个特定的元素。类似于此图像: 其中,索引0将是初始位置,该列表可能在两个方向上延伸很长,也可能不会延伸很长 我可以创建我的元素,如: Widget build_tile(int i){ return Container(child:Text(i.toString())); } 我的清单是这样的 ListView.builder( itemBuilder: (context, i)
Widget build_tile(int i){
return Container(child:Text(i.toString()));
}
我的清单是这样的
ListView.builder(
itemBuilder: (context, i) {
return build_tile(i-offset);
},
scrollDirection: Axis.horizontal,
),
对于图片中的示例,其中偏移量为2,但如何设置列表的起始位置
TLDR;如何使一个很长的列表ListView像在某个元素中开始
谢谢 您可以设置以下属性之一:
但前提是您知道目标项/索引的偏移位置
ScrollController _controller = ScrollController(initialScrollOffset: itemHeight * index)
ListView.builder(
controller: _controller,
...
),
(请注意,本例假设列表小部件的大小是恒定的,但如果列表中没有恒定的小部件大小,则必须能够计算目标项的最终偏移位置,这是另一个问题)
或者,如果您希望它始终是最后一项/索引,则更容易:
ScrollController _controller = ScrollController(initialScrollOffset: _controller.position.maxScrollExtent)
您可以设置以下属性之一:
但前提是您知道目标项/索引的偏移位置
ScrollController _controller = ScrollController(initialScrollOffset: itemHeight * index)
ListView.builder(
controller: _controller,
...
),
(请注意,本例假设列表小部件的大小是恒定的,但如果列表中没有恒定的小部件大小,则必须能够计算目标项的最终偏移位置,这是另一个问题)
或者,如果您希望它始终是最后一项/索引,则更容易:
ScrollController _controller = ScrollController(initialScrollOffset: _controller.position.maxScrollExtent)
试着使用这个包,可能是抱歉的“雅各布利普斯”的复制品,这不能解决我的问题,因为第一个答案的脚注说:“注意:虽然这很容易滚动到所需的项目,但是只考虑小的预定义列表。对于较大的列表,你会遇到性能问题。”谢谢。差不多就是这样。但是这个插件强迫我的列表是无限的,每个项目都有相同的维度/大小?试着使用这个可能重复的Sorry@JacobPhillips包,这并不能解决我的问题,正如第一个答案的脚注所说:注意:虽然这样可以轻松地滚动到所需的项目,但只针对小的预定义列表考虑此方法。至于更大的列表,你会遇到性能问题。“谢谢@diegoveloper,差不多就是这样。但是这个插件强迫我的列表是无限的,每个项目都有相同的维度/大小?