[英]How does one create a List of ListTile's in Flutter?
我的目标是要有一个ListTiles列表,以便跟踪,可以添加/删除以后可以在ListView中显示的项目。 这是我的代码的简化版本:
class Notes extends StatefulWidget{
List<ListTile> notes;
_NotesState createState() => new _NotesState();
}
class _NotesState extends State<Notes>{
@override
Widget build(BuildContext context){
widget.notes.add(new ListTile(title: new Text("Title")));
return new ListView(
children: <ListTile>[
notes[0],
]
);
}
}
但是我收到以下信息:
NoSuchMethodError:方法'add被调用为null。 接收方:null尝试调用:add(“ ListTile”的实例)
我想应该可以这样做,尽管我可能会误会。 预先感谢您为我的潜在愚蠢问题提供帮助。
问题有两方面:1)您的notes字段可能未初始化。 2)您正在将状态存储在State
对象之外。 而是将注释放在状态对象内,然后像这样初始化成员:
class _NotesState extends State<Notes>{
List<ListTile> notes = [
new ListTile(title: new Text("Title")),
];
@override
Widget build(BuildContext context){
return new ListView(
children: <ListTile>[
notes[0],
]
);
}
}
诸如此类的可变数据需要处于State
是,小部件本身可能会被重建数十次,从而擦除了所有注释。 例如,如果您的小部件是动画的子级,则它将每秒重建60次。 这也意味着您根本不应该在build方法内部对数据进行变异,因为您可能会想,它可能会被更频繁地调用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.