14、Flutter Widget - Dismissible;

Melrose發表於2019-03-20

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

相關文章