Android RangeError(索引):无效值:不在范围0..3内,包括:颤振中的4

Android RangeError(索引):无效值:不在范围0..3内,包括:颤振中的4,android,flutter,dart,flutter-layout,Android,Flutter,Dart,Flutter Layout,我在运行代码时遇到范围错误。 我只想在我的主屏幕上显示项目,但它显示了一个错误。请帮帮我。事先非常感谢。我不知道我从哪里得到这个错误。这是我的错误输出 小部件库捕获的异常═══════════════════════════════════════════════════════ 生成主屏幕时引发以下范围错误(脏,依赖项:[MediaQuery,_InheritedTheme,_LocalizationsScope-[GlobalKey#4b453]]): RangeError(索引):无效值

我在运行代码时遇到范围错误。 我只想在我的主屏幕上显示项目,但它显示了一个错误。请帮帮我。事先非常感谢。我不知道我从哪里得到这个错误。这是我的错误输出

小部件库捕获的异常═══════════════════════════════════════════════════════
生成主屏幕时引发以下范围错误(脏,依赖项:[MediaQuery,_InheritedTheme,_LocalizationsScope-[GlobalKey#4b453]]):
RangeError(索引):无效值:不在范围0..3中,包括:4
导致错误的相关小部件是:
主屏幕file:///C:/Project/ur_info/lib/WelcomeScreen/WelcomeScreen.dart:56:45
引发异常时,这是堆栈:
#0列表。[](dart:core patch/Growtable_阵列。dart:146:60)
#1 HomeScreen.build(包:urinfo/Home/Home.dart:72:45)
#2.element.build(包:flatter/src/widgets/framework.dart:4576:28)
#3 ComponentElement.performRebuild(包:flatter/src/widgets/framework.dart:4502:15)
#4.Element.rebuild(包:flatter/src/widgets/framework.dart:4218:5)

items.length==4,而列表总是从索引0开始。因此,它将尝试查找索引为1到索引为4的项。我建议使用items.length-1。

当遇到RangeError(索引)错误时,我发现了一个适合我的技巧:无效值:不在0..3范围内,包括:颤振中的4

很明显,附加到listview的滚动速度过快,超过了数组长度一个单位

首先我添加itemCount:items.length,然后在itemBuilder中并在返回之前插入以下内容:if(index>=items.length){return const Offstage();}

一个完整的例子:

DisplayItemsList () Widget {
    final widget = ListView.builder (
      physics: ScrollPhysics (),
      reverse: reverse,
      shrinkWrap: true,
      controller: scrollControllerClientsList,
      itemCount:items.length,
      itemBuilder: (_, index) {
        log ('displayItemsList: itemBuilder: index: $ index');
        if (index> = items.length) {
          return const Offstage ();
        }
        return displayOneOiLine (index);
          },
    );

不要在没有目的时制作代码片段,也不要添加与您的问题无关的标记。感谢您的回答,但Items.length-1仅显示最后一项。所有4项都未显示。这是因为您仅显示一项。查看ListView小部件以显示所有这些。我已经添加了我的代码。您能告诉我这个错误是从哪里来的吗?我能做些什么来解决这个错误。非常感谢。