[英]flutter ListView.builder is showing blank or empty data sometimes
我有 10 個不同類別的 250 個Products
列表。 Product
結構如下
class Product {
final int productId;
final int categoryId;
final String nameEn;
final String descriptionEn;
Product(
{this.productId,
this.categoryId,
this.nameEn,
this.descriptionEn
});
}
根據所選類別,我喜歡使用ListView.builder
顯示產品列表。 它在開始時為任何選定的類別顯示正確的Product
列表。 使用一段時間后,如果我選擇類別3或類別1,它顯示空列表。 然后我 debugPrint 找出哪里出錯了。 除了itemBuilder: (BuildContext _, int index)
index
外,一切看起來都很好itemBuilder: (BuildContext _, int index)
值。 它不會從 0 開始迭代,而是從 15 或 20 或 50 或有時 120 開始迭代。如果當我選擇類別 1 時index
從 30 開始,那么我會得到空列表,因為類別 1 產品是Product
列表的 0-25 索引. 下面是我的 listView.builder
ListView.builder(
itemCount: widget.products.length,
itemBuilder: (BuildContext _, int index) {
debugPrint('index is = $index');
var categoryId = widget.products[index].categoryId;
if (categoryId == selectedCategory) {
int cartProductQty = 0;
for (int i = 0; i < widget.cartProducts.length; i++) {
if (widget.products[index].productId ==
widget.cartProducts[i].cartProductId) {
cartProductQty = widget.cartProducts[i].cartProductQty;
}
}
return SingleProduct(
productId: widget.products[index].productId,
productName: widget.products[index].nameBn,
productCategory: widget.products[index].categoryId,
cartProductQty: cartProductQty,
);
} else {
return DoNothing();
}
},
);
我該如何解決這個問題。 提前致謝。
僅當其類別 id 與選定的類別 id 匹配時才返回列表項
ListView.builder( itemCount: widget.products.length, itemBuilder: (BuildContext _, int index) { var categoryId = widget.products[index].categoryId; return selectedCategory == categoryId ?:Container(); SingleProduct( productId: widget.products[index].productId, productName: widget.products[index].nameBn, productCategory: widget.products[index].categoryId, cartProductQty: cartProductQty, ):Container(); }, );
終於解決了。
我沒有將所有項目發送到ListView.builder
,而是發送了類別與所選類別匹配的項目。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.