【发布时间】:2020-05-27 16:00:13
【问题描述】:
我正在尝试构建一个列表,其中每个项目在远端都包含一个图标。但是,当我在添加多个项目时尝试访问列表时出现错误:
Invalid value: Only valid value is 0: 1
代码如下:
import 'package:flutter/material.dart';
import './images.dart';
class LikedList extends StatefulWidget {
@override
_LikedListState createState() => _LikedListState();
}
class _LikedListState extends State<LikedList> {
static List<bool> _likes = List.filled(ImagesState.likes.length,true);
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Liked List'),
),
body: ListView.separated(
separatorBuilder: (context, index) => Divider(),
itemCount: ImagesState.likes.length,
itemBuilder: (context, index) {
final item = ImagesState.likes[index];
return ListTile(
title: Text(item),
trailing: IconButton(
icon: _likes[index]
? Icon(
Icons.favorite_border,
color: Colors.grey,
)
: Icon(
Icons.favorite,
color: Colors.red,
),
onPressed: () {
setState(() {
print(_likes);
_likes[index] = !_likes[index];
print(_likes);
});
},
),
onLongPress: () {
setState(() {
print(ImagesState.likes[index]);
ImagesState.likes.removeAt(index);
});
},
);
},
),
);
}
}
有人知道为什么会这样吗?
类似的建议指向 itemCount 未设置,但我正在使用它。
【问题讨论】:
-
当你面对这个时?你正在执行什么操作
-
ImagesState.likes中有什么内容?可能您可以将itemCount的值设置为等于_likes.length。 -
@Purvik Rana 如果我将其设置为
_likes.length,则在第一次访问列表后,即使添加了更多项目,它们也不会显示在列表中。ImagesState.likes在另一个文件中,是一个 5 项的固定数组。 -
@jitsm555:这是错误:i.stack.imgur.com/RXKfx.gif
-
我刚刚检查了你的 gif。这是与您正在访问的列表相关的范围错误。请检查一次您添加项目的位置,以及添加项目后您的列表是否确实有它。
标签: flutter dart flutter-layout