第三十二回:Dismissible Widget

文章介绍了DismissibleWidget在Flutter中的应用,它是一个响应滑动事件的Widget,常用于ListView中实现项目的删除功能。通过设置onDismissed、confirmDismiss等属性可以控制删除行为。示例代码展示了如何创建一个可滑动删除的ListView。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


我们在上一章回中介绍了 GestureDetector Widget相关的内容,本章回中将介绍 Dismissible Widget.闲话休提,让我们一起Talk Flutter吧。

概念介绍

我们在这里介绍的Dismissible是一个事件响应Widget,它和GestureDetector类似,不过它只能响应滑动事件,它经常配合ListView使用,用来删除List中的某一个项目,我们在本章回中将详细介绍它的使用方法。

使用方法

和其它Widget一样,Dismissible提供了相关的属性来响应事件,接下来我们分享一些常用的属性:

  • onDismissed属性:该属性主要用来响应删除事件,它的类型是一个方法,我们可以在该属性对应的方法中进行删除操作;
  • confirmDismiss属性:该属性主要用来确认是否删除内容,它的类型是一个方法,删除内容时先调用该属性对应的方法进行确认后才调用onDismissed属性对应的方法;
  • onUpdate属性:该属性主要用来更新内容,它的类型是一个方法,方法的参数中包含有更新内容的详细信息;
  • child属性:该属性主要用来表示被删除的内容,和其它容器类Widget中的child属性含义相同;

示例代码

Widget build(BuildContext context) {
  List<String> arrayList = List<String>.generate(8, (index) => "Item $index of List");

  return Scaffold(
    appBar: AppBar(
      backgroundColor: Colors.purpleAccent,
      title: Text("Example of Dismissible"),
    ),
    body: ListView.builder(
      itemCount: 8,
      itemBuilder: (context, index) {
        return Dismissible(
          key: Key(arrayList[index]),
          onDismissed: (direction) {
            arrayList.removeAt(index);
            print("$index is deleted");
          },
          child: ListTile(
            title: Text(arrayList[index]),
          ),
        );
      },
    ),
  );
}

上面的代码中首先是创建一个ListView,然后把Dismissed组件当作ListView的Item,这样就实现了删除ListView项目的方法。而真正的删除操作是删除arrayList中的内容,因为ListView中的显示的内容位于arrayList中。

编译并且运行上面的程序,可以看到一个具有8个项目的ListView,向左或者向右滑动ListView中的
某个项目时就可以把项目删除,我们在删除完打印了一行日志,可以在终端中看到程序运行时打印出的日志。

看官们,关于Dismissible Widget相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

talk_8

真诚赞赏,手有余香

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值