簡體   English   中英

在 Flutter 中構建動態列表的最有效方法是什么?

[英]What is the most efficient way of building a dynamic list in Flutter?

所以,我目前正在嘗試使用 listview.builder 在我的應用程序中動態構建一個列表。 我最初計划發送一個 http 請求一次只加載幾個項目,但是我在使用 futurebuilder 和 listview builder 時遇到了很多麻煩。 這個想法是,如果用戶滾動到底部,則會加載更多項目。 現在我正在使用流構建器,后端一次發送所有項目,我認為這是低效的,但是因為我沒有從流構建列表的經驗,所以我無法確定。 無論如何,我想要一些動態構建長列表的建議。

最好的方法是使用 ListView.builder。 要使用 ListView.builder,您必須通過使用 new 調用其構造函數來創建它的實例,它需要多個參數。 假設我們的應用程序中有一個這樣的全局列表

List<String> litems = ["1","2","Third","4"];

使用 LIstView.builder,相同的代碼應如下所示

body: new ListView.builder
  (
    itemCount: litems.length,
    itemBuilder: (BuildContext ctxt, int index) {
     return new Text(litems[index]);
    }
  )

在這里,就地回調 function 將被調用 4 次,每次調用都會生成一個 Text Widget,該控件將顯示在 body 中。

您還可以編寫一個單獨的 function 可以從 itemBuilder 調用為

// A Separate Function called from itemBuilder
Widget buildBody(BuildContext ctxt, int index) {
  return new Text(litems[index]);
}
body: new ListView.builder
(
  itemCount: litems.length,
  itemBuilder: (BuildContext ctxt, int index) => 
buildBody(ctxt, index)
),

在這兩種情況下,output 看起來都一樣。 如果您希望每次在應用程序中加載小部件時都顯示動態(不同)內容,您還可以在無狀態小部件中使用 ListView.builder(..)。 使用有狀態的小部件,它可以動態地改變屏幕的內容。 我希望這有幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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