当前位置: 首页 > 知识库问答 >
问题:

颤振无效值:不在包含范围内

鲍建业
2023-03-14

我一直在尝试在listview生成器的末尾添加一个按钮。我试着做这个问题中建议的事情:Flutter:如何在ListView的末尾添加一个按钮小部件。包含其他类型小部件的生成器?。但如果我这样做,我会得到:“RangeError(index):无效值:不在包含范围0..49:50中

我试图寻找问题,也有这个问题,但我找不到一个答案,解决它。

List<Anime> animeList = animeData.animeList;
      print(animeList.length);
      return ListView.builder(
        padding: EdgeInsets.only(bottom: 30, top: 10),
        itemBuilder: (context, index) {
          Anime anime = animeList[index];

          if (index == animeList.length) {
            return ThinOutlineBtn(
              primaryColor: themeWizard.getPrimaryColor(),
              darkColor: themeWizard.getBackgroundColor(),
              text: "More",
              highlightedBorderColor: themeWizard.getPrimaryColor(),
              ontap: () {
                AnilistApi.followUpQuery(AnilistApi.animeQuery, animeData,
                    animeData.animePage.currentPage + 1);
              },
            );
          }

          return AnimeCard(
            anime: anime,
            darkMode: themeWizard.getCurrentMode(),
            activeIcon: themeWizard.getPrimaryColor(),
            background: themeWizard.getCardColor(),
            btnHighlightColor: themeWizard.getBackgroundColor(),
            textColor: themeWizard.getCardTextColor(),
            inActiveIcon: themeWizard.getIconColor(),
          );
        },
        itemCount: animeList.length + 1,
      );

共有2个答案

刘俊语
2023-03-14

您正在使用

itemCount: animeList.length + 1,

你应该使用

itemCount: animeList.length,

在ListView中,索引以零开始,而不是以一开始

南门欣怡
2023-03-14

删除下面的行,并在if条件之后添加它。

删除此行:

 Anime anime = animeList[index];

以及if条件后移除的线路

if (index == animeList.length) {
....
.....
}
/// Add removed line here
Anime anime = animeList[index];
 类似资料:
  • 大家好,我是flutter初学者,在练习刷卡解雇选项时,我已经完成了下面提到的代码,删除了一些产品后,我收到了下面的错误,我试图解决这个问题,但不能,请给我提供您的宝贵建议。 下面我附上了代码和错误供您参考。 ======== 由小部件库捕获的异常 ======================================================= 抛出了以下RangeError构建:R

  • 我在颤振中使用了一个很长的列表。所有项目都呈现良好,但我也收到以下错误: 以下是我的代码: 下面是我的方法: 下面是我的方法: 以下是错误的屏幕截图:

  • 我在颤振中使用Swiper,错误发生在我在列表中添加4个元素时。 我引用了链接抖动错误:RangeError(索引):无效值:不在范围0内。。2,包含:3,但无法在Swiper中实现。

  • 在这个应用程序中,我试图获得基于听事件的查询。如果数据库中有任何变化,移动屏幕中的数据将发生变化。下面是从数据库获取数据的代码。 我使用Gridview构建器显示数据。 我在上面代码的第9行中遇到错误。 即使quizStart()中的条件有效,我也会得到范围错误。 有人能帮我解决这个问题吗?

  • 列出dataListWidget(AsyncSnapshot快照){return snapshot.data.docs[0].map((文档){return ListTile(标题:Text(文档[“Name]”),副标题:Text(文档[“City”]),;})。toList();} //我的streamBuilder StreamBuilder(流:firestore.collection('

  • 我正试图从Flatter网站上消化以下信息。 Flutter如何在Android上运行我的代码? 引擎的C和C代码是用Android的NDK编译的。Dart代码(SDK和您的)是提前(AOT)编译到本机、ARM和x86库中的。这些库包含在一个“runner”Android项目中,整个项目都内置在一个APK中。启动时,应用程序将加载颤振库。任何呈现、输入或事件处理等都被委托给编译的flatter和应