[英]How can I use for loop in flutter?
return Scaffold(
body: SingleChildScrollView(
child: Column(
children: <Widget>[
Stack(
children: <Widget>[
Column(
children: <Widget>[
NewsBlock(
size: size,
dataList: dataList,
imgNum: 1,
titleNum: 11,
urlNum: 21,
),
NewsBlock(
size: size,
dataList: dataList,
imgNum: 2,
titleNum: 12,
urlNum: 22,
),
NewsBlock(
size: size,
dataList: dataList,
imgNum: 3,
titleNum: 13,
),
NewsBlock(
size: size,
dataList: dataList,
imgNum: 4,
titleNum: 14,
),
],
)
],
),
],
)),
);
我想用 for 循環將長代碼縮短。 但是我不知道如何在flutter中使用for循環..我認為我可以通過將i放入imgNum,titleNum和urlNum並增加i來減少代碼長度。 我怎樣才能做到這一點? (順便說一句,有 10 個新聞塊,我還沒有為所有新聞塊寫 urlNum,因為輸入所有新聞塊讓我覺得自己像個傻瓜)
您可以像這樣使用 for 循環:
final maxSize = ???;
final imgStartIndex = 1;
final titleStartIndex = 11;
final urlStartIndex = 21;
return Scaffold(
body: SingleChildScrollView(
child: Column(
children: <Widget>[
Stack(
children: <Widget>[
Column(
children: <Widget>[
for (int i = 0; i < maxSize; i++)
NewsBlock(
size: size,
dataList: dataList,
imgNum: imgStartIndex + i,
titleNum: titleStartIndex + i,
urlNum: urlStartIndex + i,
),
],
)
],
),
],
)),
);
我不知道你的數據結構,所以你應該自己猜怎么計算maxSize ;
對於你的問題,你可以這樣做
children: [
for (var i = 0; i < List.length; i++)
NewsBlock()
],
其他方法是在列表數據中使用地圖
children: newsData.map((item)=>NewsBlock(
size: item.size,
dataList: item.datalist,
imgNum: item.imgNum,
titleNum: item.titleNum,
)).toList()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.