如果你想向左或者向右滑动来移除一个Widget,可以使用Dismissible;
Dismissible(
child:ListTitle(
title:Text(myString),
),
background:Container(
color:Colors.green,
),
key:ValueKey(myString),
)
复制代码
它会检测手势并使子Widget可以滑动消失。
如果和ListView一起使用,可以使用onDismissed回调来调用setState:
ListView.builder(
itemCount:items.length,
itemBuilder:(context,i){
return Dismissible(
…
onDismissed:(direction){
setState((){
items.removeAt(i);
});
},
…
);
复制代码
还可以使用secondaryBackground属性进行多项的移除,设置方向后可以垂直滑动:
Dismissible(
..
direction:DismissDirection.vertical,
…
);
复制代码