pageview builder(水平スクロール)で構成された注文リスト(注文を含む)があり、各注文ページにはlistview.builder(垂直スクロール)に項目があり、動的に正常に構成できます。
現在、すべての注文には n 個のアイテムがあり、各アイテムにはアクションを正常に呼び出すボタンがあります。アクションが成功した後、サーバーのバックエンドで削除されるため、アクションが実行された注文の注文アイテムを listview.builder から削除する必要があります。
また、注文にアイテムが残っていない場合は、サーバーからも削除されるため、pageview.builder からも削除する必要があります。
pageview.builder と list.viewbuilder のウィジェット用に私が使用しているコードは以下のとおりです
FutureBuilder(
future: _future,
builder: (context, snapshot) {
switch (snapshot.connectionState) {
case ConnectionState.none:
return Text('none');
case ConnectionState.waiting:
return Center(child: CircularProgressIndicator());
case ConnectionState.active:
return Text('');
case ConnectionState.done:
if (snapshot.hasError) {
return Text(
'${snapshot.error}',
style: TextStyle(color: Colors.red),
);
} else {
return PageView.builder(
scrollDirection: Axis.horizontal,
itemCount: snapshot.data.content.length,// length of total orders
itemBuilder: (context, index) {
var firstdata = jsonResponse['content'];
var list = firstdata[index]['order_items'];
return Column(
children:<Widget>[
Text( firstdata[index]['order_no]),
ListView.builder(
shrinkWrap: true,
itemCount: //lenght of the items in the order to be determined,
itemBuilder: (context, index) {
return Column(
children: [
Text(list[index]['item_number']),
RaisedButton(
onPressed: (){
callaction();
},
)
],
);
},
),
])
});
}
}
})
呼び出された関数
callaction(){
print('action called on server');
var response = await http.post(url, body: data);
if (response.statusCode == 200) {
print('success');
}
}
目的の機能を実現する方法を教えてください。json flutter indexing flutter-listview flutter-pageview