当我们点击列表项时,一次可滑动一张幻灯片

问题描述 投票:0回答:2

我想在点击列表项时滑动,当我点击第一次滑块打开时,第二次当我点击另一个列表项时,第一个滑块刚刚关闭,第二个滑块未打开。

这是代码

    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),
          );
        }
      ),)
flutter dart flutter-layout
2个回答
0
投票

无需做太多事情,只需为所有可滑动对象分配相同的 groupTag 即可,如下所示,并阅读以下文本以更好地理解。

您必须为共享同一组的所有 Slidable 设置相同的 groupTag 值,并在 Slidable 上方添加 SlidableAutoCloseBehavior。

在下面的代码片段中,前两个 Slidable 具有相同的组,因此只能打开其中一个,而最后一个 Slidable 与其他 Slidable 无关。

SlidableAutoCloseBehavior( 孩子:列表视图( 孩子们: [ 滑动式( 组标签: '0', ), 滑动式( 组标签: '0', ), 滑动式( 组标签:'1', ), ], ), )


-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),
          );
        }
      ),)
© www.soinside.com 2019 - 2024. All rights reserved.