gpt4 book ai didi

android - 如何在 Flutter 中创建一个 ListTile 列表?

转载 作者:IT王子 更新时间:2023-10-29 06:38:56 30 4
gpt4 key购买 nike

我的目标是拥有一个 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:在 null 上调用了方法 'add。接收者:空尝试调用:添加(“ListTile”的实例)

我认为应该可以这样做,当然我可能会弄错。预先感谢您帮助我解决我可能很愚蠢的问题。

最佳答案

问题有两个:1) 您的备注字段可能未初始化。 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 次。这也意味着您根本不应该在构建方法内改变数据,因为它可能比您想象的更频繁地被调用。

关于android - 如何在 Flutter 中创建一个 ListTile 列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49635217/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com