Flutter 单击以删除时从ListView生成器中删除容器

Flutter 单击以删除时从ListView生成器中删除容器,flutter,listview,dart,Flutter,Listview,Dart,ListView生成器生成容器。在容器内部,它有另一个容器来移除第一个容器。 我已经试过用Dismissible,但没用。。。这个问题很相似,但我无法申请我的代码: 希望有人能帮忙:)) 代码如下: ListView.builder( scrollDirection: Axis.horizontal, shrinkWrap: true, padding

ListView生成器生成容器。在容器内部,它有另一个容器来移除第一个容器。 我已经试过用Dismissible,但没用。。。这个问题很相似,但我无法申请我的代码:

希望有人能帮忙:))

代码如下:

ListView.builder(
                        scrollDirection: Axis.horizontal,
                        shrinkWrap: true,
                        padding: EdgeInsets.only(bottom: 10),
                        itemCount:
                            snapshot.data != null ? snapshot.data.length : 0,
                        itemBuilder: (BuildContext context, int index) {
                          OrdersModel orderItem = snapshot.data[index];
                          return InkWell(
                            //onTap
                            child: Container(
                              padding: EdgeInsets.only(
                                  bottom: 10, top: 10, left: 5, right: 5),
                              margin: EdgeInsets.only(left: 5, right: 15),
                              width: 187,
                              decoration: BoxDecoration(
                                borderRadius: BorderRadius.all(
                                  Radius.circular(20),
                                ),
                                color: Colors.white,
                                boxShadow: [
                                  BoxShadow(
                                    color: Colors.grey,
                                    blurRadius: 0.5,
                                  ),
                                ],
                              ),
                              child: Column(
                                children: [
                                  Container(
                                    child: Material(
                                      borderRadius: BorderRadius.all(
                                        Radius.circular(10),
                                      ),
                                      color: Color(0xffeb5c68),
                                      child: InkWell(
                                        splashColor: Color(0xffda1b2b),
                                        borderRadius: BorderRadius.all(
                                          Radius.circular(10),
                                        ),
                                        child: SizedBox(
                                          width: 220,
                                          height: 40,
                                          child: Row(
                                            mainAxisAlignment:
                                                MainAxisAlignment.center,
                                            children: [
                                              Text(
                                                "REMOVE ${orderItem.number}",
                                                textAlign: TextAlign.center,
                                                style: TextStyle(
                                                  color: Colors.white,
                                                ),
                                              ),
                                            ],
                                          ),
                                        ),
                                        onLongPress: () async {
                                          Navigator.push(
                                            context,
                                            MaterialPageRoute(
                                              builder: (context) =>
                                                  OrderDetailsPage(),
                                            ),
                                          );
                                        },
                                      ),
                                    ),
                                  ),
                                ],
                              ),
                            ),
                            onTap: () {},
                          );
                        },
                      );

您可以在解决方案中使用
Dismissible

您可能只需在列表项中调用snapshot.data.removeAt(index),如下所示:

ListView.builder(
      itemCount: items.length,
      itemBuilder: (context, index) {
        final item = items[index];

        return ListTile(title: Text('$item --- Click to remove me'),onTap:(){
            setState(() {
              items.removeAt(index);
            });
          });
      },
    ),

它只是刷新页面,而不是删除容器!这里有一个功能示例:D您可以试穿它