2

有一个订单列表(包含订单),它配置了页面浏览构建器(水平滚动),并且在每个订单页面中都有 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颤振索引颤振列表视图颤振页面视图

4

1 回答 1

0

您可以将 的项目的索引传递firstdatacallaction(). 问题是第二个构建器的索引覆盖了第一个,因此您需要重命名两者中的至少一个。然后你可以callaction(firstIndex)从那里删除正确的项目firstdata

于 2020-09-04T07:38:14.743 回答