如果你想向左或者向右滑動來移除一個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,
…
);
複製程式碼