2

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

4

1 に答える 1