我想在点击列表项时滑动,当我点击第一次滑块打开时,第二次当我点击另一个列表项时,第一个滑块刚刚关闭,第二个滑块未打开。
这是代码
Slidable(
groupTag: '0',
enabled: enable,
direction: Axis.horizontal,
key: _globalKey,
endActionPane: ActionPane( motion: ScrollMotion(),extentRatio: 1,children: [_getSwipeActions(context)],),
child: Builder(
builder: (context) {
return InkWell(
onTap:(){
if( Slidable.of(context).actionPaneType==ActionPaneType.none){
Slidable.of(context).close();
}
else{
Slidable.of(context).openEndActionPane();
}
},
child: ListItem(data,
,context),
);
}
),)
无需做太多事情,只需为所有可滑动对象分配相同的 groupTag 即可,如下所示,并阅读以下文本以更好地理解。
您必须为共享同一组的所有 Slidable 设置相同的 groupTag 值,并在 Slidable 上方添加 SlidableAutoCloseBehavior。
在下面的代码片段中,前两个 Slidable 具有相同的组,因此只能打开其中一个,而最后一个 Slidable 与其他 Slidable 无关。
SlidableAutoCloseBehavior( 孩子:列表视图( 孩子们: [ 滑动式( 组标签: '0', ), 滑动式( 组标签: '0', ), 滑动式( 组标签:'1', ), ], ), )
Slidable(
groupTag: '0',
enabled: enable,
direction: Axis.horizontal,
key: _globalKey,
endActionPane: ActionPane( motion: ScrollMotion(),extentRatio: 1,children: [_getSwipeActions(context)],),
child: Builder(
builder: (context) {
return InkWell(
onTap:(){
if(Slidable.of(context).actionPaneType.value==ActionPaneType.end){
Slidable.of(context).close();
}
else{
Slidable.of(context).openEndActionPane();
}
},
child: ListItem(data,
,context),
);
}
),)