[英]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.