Flutter 运行dismissible widget时,范围错误不断出现
这是我的密码Flutter 运行dismissible widget时,范围错误不断出现,flutter,Flutter,这是我的密码 import 'package:flutter/material.dart'; void main() => runApp(TodoList()); class TodoList extends StatefulWidget { @override State<StatefulWidget> createState() { // TODO: implement createState return _TodoListState(); } } va
import 'package:flutter/material.dart';
void main() => runApp(TodoList());
class TodoList extends StatefulWidget {
@override
State<StatefulWidget> createState() {
// TODO: implement createState
return _TodoListState();
}
}
var TaskTextField;
List taskTextList = [];
var TaskIsImportant = false;
class _TodoListState extends State<TodoList> {
@override
Widget build(BuildContext context) {
// TODO: implement build
return MaterialApp(
title: "To-Do List V2",
home: Scaffold(
appBar: AppBar(
title: Text("To-Do List V2"),
),
body: Flex(
direction: Axis.vertical,
children: <Widget>[
Flexible(
fit: FlexFit.tight,
child: Column(children: <Widget>[
Container(
child: TextField(
decoration: InputDecoration(
hintText: "Enter title of task to be added"),
onChanged: (taskTextField) {
setState(() {
TaskTextField = taskTextField;
print(TaskTextField);
});
},
),
margin: EdgeInsets.all(16.0),
),
CheckboxListTile(
title: Text("Important"),
activeColor: Colors.blue,
value: TaskIsImportant,
onChanged: (val) {
setState(() {
TaskIsImportant = !TaskIsImportant;
print(TaskIsImportant);
});
},
),
Text(
"Tip: Tap on your task to remove it",
style: TextStyle(fontSize: 15.0),
),
Container(
margin: EdgeInsetsDirectional.fromSTEB(117, 10, 117, 5),
child: Row(
children: <Widget>[
RaisedButton(
child: Icon(Icons.add),
onPressed: () {
setState(() {
if (TaskIsImportant) {
taskTextList.add("❗️$TaskTextField");
//taskTitleList.add(TaskDetailField);
} else {
taskTextList.add(TaskTextField);
//taskTitleList.add(TaskDetailField);
}
});
},
),
RaisedButton(
child: Icon(Icons.done_all),
onPressed: () {
setState(() {
taskTextList = [];
});
},
),
],
),
),
Expanded(
child: ListView.builder(
itemBuilder: (context, index) {
var title = taskTextList[index];
padding:
EdgeInsets.all(16.0);
return Dismissible(
key: Key(title[index]),
onDismissed: (direction) {
setState(() {
taskTextList.remove(title);
});
},
child: ListTile(
title: Text(
title,
style: TextStyle(fontSize: 20.0),
),
),
);
},
itemCount: taskTextList.length,
),
)
]),
),
],
)));
}
}
我希望有人能告诉我我的代码有什么问题。我运行的是颤振版本1.3.10。提前谢谢
对于需要更多代码的人,这里是main.dart的完整代码。希望这将帮助您找到我的错误您正在使用
title[index]
但将title中的值保存为title=taskTextList[index]
,它不是数组。因此,您得到的是范围错误。您使用的是title[index]
但将title中的值保存为title=taskTextList[index]
,它不是数组。因此,您得到的是范围错误。在“标题”数组和“任务文本列表”数组中添加值的代码。好的,我已添加了所有代码在“标题”数组和“任务文本列表”数组中添加值的代码。好的,我已在将标题[index]更改为任务文本列表[index]后添加了所有代码,我得到了一个新的错误,名为:flatter:building Dismissible-[](脏的,依赖项:flatter:[方向性],状态:_DismissibleState(tickers:tracking 2 tickers)):flatter:Dismissible Dismissible小部件仍然是树的一部分。颤振:确保实现onDismissed处理程序,并在该处理程序启动后立即从应用程序中删除Dismissible Flatter:widget。将标题[index]更改为taskTextList[index]后,我收到一个名为:颤振的新错误:生成Dismissible-[](脏,依赖项:颤振)时抛出以下断言:[方向性],状态:_DismissibleState(tickers:tracking 2 tickers)):flatter:Dismissible小部件仍然是树的一部分。flatter:确保实现onDismissed处理程序,并在该处理程序启动后立即从应用程序中删除Dismissible flatter:widget。
flutter: ══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
flutter: The following RangeError was thrown building:
flutter: RangeError (index): Invalid value: Not in range 0..3, inclusive: 4