Listview 向右拖动并删除

Listview 向右拖动并删除,listview,flutter,Listview,Flutter,我在卡片的小部件中有一个小部件ListView.builder。如何将listile小部件向右拖动并从列表中删除该产品?这张照片也是一样 您可以使用Widget来实现它 下面的代码可能会帮助您更好地理解它 final items = List<String>.generate(20, (i) => "Item ${i + 1}"); @override Widget build(BuildContext context) { return Scaffold(

我在卡片的小部件中有一个小部件
ListView.builder
。如何将
listile
小部件向右拖动并从列表中删除该产品?这张照片也是一样

您可以使用Widget来实现它

下面的代码可能会帮助您更好地理解它

final items = List<String>.generate(20, (i) => "Item ${i + 1}");

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("Dismissable demo"),
      ),
      body: ListView.builder(
        itemCount: items.length,
        itemBuilder: (context, index) {
          final item = items[index];
          return Dismissible(
              key: Key(item),
              onDismissed: (direction) {
                setState(() {
                  items.removeAt(index);
                });
                Scaffold.of(context)
                    .showSnackBar(SnackBar(content: Text("$item dismissed")));
              },
              background: Container(
                color: Colors.red,
                child: Icon(Icons.delete),
              ),
              child: Card(
                margin: EdgeInsets.all(20),
                child: Text("$item"),
              ));
        },
      ),
    );
  }
final items=List.generate(20,(i)=>“Item${i+1}”);
@凌驾
小部件构建(构建上下文){
返回脚手架(
appBar:appBar(
标题:文本(“可撤销演示”),
),
正文:ListView.builder(
itemCount:items.length,
itemBuilder:(上下文,索引){
最终项目=项目[索引];
可驳回的回报(
键:键(项),
onDismissed:(方向){
设置状态(){
项目移除(索引);
});
脚手架(上下文)
.showSnackBar(SnackBar(内容:文本($item disposed));
},
背景:集装箱(
颜色:颜色,红色,
子:图标(Icons.delete),
),
孩子:卡片(
保证金:全部(20),
子项:文本(“$item”),
));
},
),
);
}
您可以使用小部件来实现它

下面的代码可能会帮助您更好地理解它

final items = List<String>.generate(20, (i) => "Item ${i + 1}");

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("Dismissable demo"),
      ),
      body: ListView.builder(
        itemCount: items.length,
        itemBuilder: (context, index) {
          final item = items[index];
          return Dismissible(
              key: Key(item),
              onDismissed: (direction) {
                setState(() {
                  items.removeAt(index);
                });
                Scaffold.of(context)
                    .showSnackBar(SnackBar(content: Text("$item dismissed")));
              },
              background: Container(
                color: Colors.red,
                child: Icon(Icons.delete),
              ),
              child: Card(
                margin: EdgeInsets.all(20),
                child: Text("$item"),
              ));
        },
      ),
    );
  }
final items=List.generate(20,(i)=>“Item${i+1}”);
@凌驾
小部件构建(构建上下文){
返回脚手架(
appBar:appBar(
标题:文本(“可撤销演示”),
),
正文:ListView.builder(
itemCount:items.length,
itemBuilder:(上下文,索引){
最终项目=项目[索引];
可驳回的回报(
键:键(项),
onDismissed:(方向){
设置状态(){
项目移除(索引);
});
脚手架(上下文)
.showSnackBar(SnackBar(内容:文本($item disposed));
},
背景:集装箱(
颜色:颜色,红色,
子:图标(Icons.delete),
),
孩子:卡片(
保证金:全部(20),
子项:文本(“$item”),
));
},
),
);
}

查看此链接:@VirenVVarasadiya为什么不发布答案?查看此链接:@VirenVVarasadiya为什么不发布答案?