我们在上一章回中介绍了
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相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!