首页 > 解决方案 > 在列表视图中向上滚动时 Tabcontroller 抛出错误

问题描述

我的列表视图控制器的滚动控制器通过我在下面创建的函数与我的标签栏链接。但是,当我向上滚动时,控制台会抛出此错误:

'断言失败:第 155 行 pos 12:'值 >= 0 &&(值 < 长度 || 长度 == 0)':不正确。

我似乎无法解决错误,当用户达到偏移量 == 0 时是否应该禁用滚动控制器?如果是这样,我该怎么做?

  void _scrollListener() {
    var index = (_scrollController.offset / 70).round();
    if (index > choices.length)
      index = choices.length;
      setState(() {
        _tabController.animateTo(index, duration: Duration(milliseconds: 500), curve: Curves.easeIn);
      });
  } 

标签: flutterdart

解决方案


我不是 100% 确定,但我认为默认情况下选项卡索引从 0 开始。假设我们有 3 个选项卡和 3 个选项。加载任何一个选项卡的正确方法是传递 0 到 2 之间的索引。如果我们在此示例中使用您的代码,这将导致异常,因为

index = choices.length;

index 的值为 3 并且 _tabController 在该位置没有项目。


推荐阅读