我正在嘗試從某個模擬端點讀取資料。
uj5u.com熱心網友回復:
在此處您應該使用的構建器中,itemCount
引數
ListView.builder(
itemCount: list.length,
itemBuilder: (context, index) {
return Your Widget;
}),
uj5u.com熱心網友回復:
為未來創建一個狀態變數并包含itemCount: list.length,
final myFuture = ConfigurationController.getOpticsTools2();
并使用它
child: FutureBuilder<ApiCallResponse>(
future: myFuture ,
builder: (context, snapshot) {
uj5u.com熱心網友回復:
您只是忘記指定串列的大小,您應該使用 ListView.builder 小部件中的 itemCount 屬性來完成
itemCount: list.length,
uj5u.com熱心網友回復:
我掙扎了這么久,但很明顯,問題不在于將itemCount
論點傳遞給ListView.builder()
方法。此外,外部回圈無效,因為現在我需要itemIndex
在構建器中使用實際的。感謝您指出 itemCount all!這是固定代碼和解決方案,以防以后有人需要。
@override
Widget build(BuildContext context) {
final opticsToolsMockResponse = ConfigurationController.getOpticsTools2();
return Scaffold(
backgroundColor: Colors.black,
appBar: StandardAppbarWidget(appBarTitle: "some title"),
body: SizedBox(
child: FutureBuilder<ApiCallResponse>(
future: opticsToolsMockResponse,
builder: (context, snapshot) {
if (!snapshot.hasData) {
return Center(
child: SizedBox(
width: 50,
height: 50,
child: CircularProgressIndicator(
color: Colors.red,
),
),
);
}
final gridViewGetToolsOpticsResponse = snapshot.data;
var toolCategories = getJsonField(
gridViewGetToolsOpticsResponse.jsonBody,
r'''$.result.toolList''',
).toList();
return Builder(
builder: (context) {
return ListView.builder(
itemCount: toolCategories.length,
itemBuilder: (context, itemIndex) {
final widgets = <Widget>[];
var currentToolCategory = getJsonField(
toolCategories[itemIndex],
r'''$.category''',
);
widgets.add(Text(
currentToolCategory,
style: Colors.white,
));
var toolListInCategory = getJsonField(
toolCategories[itemIndex],
r'''$.tools''',
);
for (int j = 0; j < toolListInCategory.length; j ) {
var toolDisplayName = getJsonField(
toolListInCategory[j],
r'''$.displayName''',
);
widgets.add(Text(toolDisplayName));
}
return SingleChildScrollView(
child: Column(
children: widgets,
));
});
},
);
},
),
),
);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/508536.html