Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
颤振在非常大的ListView上设置ListView初始位置_Listview_Dart_Flutter - Fatal编程技术网

颤振在非常大的ListView上设置ListView初始位置

颤振在非常大的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)

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

其中,索引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,
            ),
对于图片中的示例,其中偏移量为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,差不多就是这样。但是这个插件强迫我的列表是无限的,每个项目都有相同的维度/大小?