我的listview.builder
给了我很多Renderbox错误,例如颤动:
引发了另一个异常:未布置RenderBox:RenderViewport#fa71e NEEDS-LAYOUT NEEDS-PAINT
并且:
NoSuchMethodError:方法'<='在null上被调用。
我尝试添加填充,但无济于事。我正在Flutter 1.3.10版上运行。
错误地初始化了什么?
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(
home: Scaffold(
appBar: AppBar(
title: Text("To-Do List V2"),
),
body: 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);
});
},
),
Container(
margin: EdgeInsetsDirectional.fromSTEB(118, 20, 118, 20),
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 = [];
});
},
),
],
),
),
ListView.builder(
itemBuilder: (context, index) {
var title = taskTextList[index];
padding: EdgeInsets.all(16.0);
return ListView(
children: <Widget>[
Text(title),
],
);
},
),
],
),
),
);
}
}
答案 0 :(得分:0)
请将您的ListView.builder
更改为
Expanded(
child: ListView.builder(
itemBuilder: (context, index) {
var title = taskTextList[index];
padding: EdgeInsets.all(16.0);
return ListTile(
title: Text(title),
);
},
itemCount: taskTextList.length,
),
)
希望这会有所帮助!
答案 1 :(得分:0)
在Column
小部件中包装Flexible
子小部件,例如Expanded
。另外,您应该使用例如MaterialApp
的应用程序将无状态窗口小部件作为入口,然后从那里调用有状态窗口小部件。