flutter - 在列表视图中向上滚动时 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);
});
}
解决方案
我不是 100% 确定,但我认为默认情况下选项卡索引从 0 开始。假设我们有 3 个选项卡和 3 个选项。加载任何一个选项卡的正确方法是传递 0 到 2 之间的索引。如果我们在此示例中使用您的代码,这将导致异常,因为
index = choices.length;
index 的值为 3 并且 _tabController 在该位置没有项目。
推荐阅读
- c++ - 打印列表时 C++ 读取访问错误
- python - 在 Python 中初始化“未使用参数值”的类时收到警告
- c - 如何用逗号分割c中的字符串
- reactjs - 错误命令失败,退出代码为 1。使用 react-native 和 yarn eslint
- vue.js - 在生产环境中调用什么 API 将数据发送到 PHP 文件?
- c++ - 在是或否问题上需要帮助
- python-3.x - 将列表项转换为 ppytohn 中的列表 dict 值
- sympy - 如何使 sympy 简化等于零的激进表达式
- r - 如何从 r 中的列表中访问元素?
- laravel - 如果我在中间件之前和之后使用 laravel 的来加密和解密每个请求,是好是坏?