【问题标题】:Remove container from ListView Builder when clicked to remove单击删除时从 ListView Builder 中删除容器
【发布时间】:2021-05-28 18:53:15
【问题描述】:

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

removing item from ListView.builder Flutter

希望有人可以提供帮助:)))

代码如下:

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: () {},
                          );
                        },
                      );

【问题讨论】:

    标签: flutter listview dart


    【解决方案1】:

    您可以使用Dismissible https://flutter.dev/docs/cookbook/gestures/dismissible 作为您的解决方案

    【讨论】:

      【解决方案2】:

      你可能可以在你的列表项中调用一个 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);
                  });
                });
            },
          ),
      

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-01-17
      • 2016-05-07
      • 2013-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多