14、Flutter Widget - Dismissible;

1,814 阅读1分钟

  如果你想向左或者向右滑动来移除一个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,
…
);