文章目录
- 1 概念介绍
- 2 使用方法
- 3 示例代码
我们在上一章回中介绍了GestureDetector Widget相关的内容,本章回中将介绍Dismissible Widget.闲话休提,让我们一起Talk Flutter吧。
1 概念介绍
我们在这里介绍的Dismissible是一个事件响应Widget,它和GestureDetector类似,不过它只能响应滑动事件,它经常配合ListView使用,用来删除List中的
某一个项目,我们在本章回中将详细介绍它的使用方法。
2 使用方法
和其它Widget一样,Dismissible提供了相关的属性来响应事件,接下来我们分享一些常用的属性:
- onDismissed属性:该属性主要用来响应删除事件,它的类型是一个方法,我们可以在该属性对应的方法中进行删除操作;
- confirmDismiss属性:该属性主要用来确认是否删除内容,它的类型是一个方法,删除内容时先调用该属性对应的方法进行确认后才调用onDismissed属性对应的方法;
- onUpdate属性:该属性主要用来更新内容,它的类型是一个方法,方法的参数中包含有更新内容的详细信息;
- child属性:该属性主要用来表示被删除的内容,和其它容器类Widget中的child属性含义相同;
3 示例代码
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相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!