簡體   English   中英

如何在Flutter中創建ListTile的列表?

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM