美文网首页
【flutter】draggable基本用法介绍

【flutter】draggable基本用法介绍

作者: 朱慢慢 | 来源:发表于2021-09-10 16:54 被阅读0次
     Draggable(
          //这个参数是和DragTarget配合使用的,当用户将控件拖动到DragTarget时此数据会传递给DragTarget
          data: value,
          //子控件
          child: DragTarget(
            //当onWillAccept返回true时, candidateData参数的数据是Draggable的data数据。
            // 当onWillAccept返回false时, rejectedData参数的数据是Draggable的data数据,
            builder: (context, candidateData, rejectedData) {
              return baseItem(value);
            },
            //onWillAccept:拖到该控件上时调用,需要返回true或者false,返回true,松手后会回调onAccept,否则回调onLeave。
            onWillAccept: (moveData) {
              print('=== onWillAccept: $moveData ==> $value');
              var accept = moveData != null;
              if (accept) {
                exchangeItem(moveData, value, false);
              }
              return true;
            },
            //onAccept:onWillAccept返回true时,用户松手后调用。
            onAccept: (moveData) {
              print('=== onAccept: $moveData ==> $value');
              exchangeItem(moveData, value, true);
            },
            //onLeave:onWillAccept返回false时,用户松手后调用。
            onLeave: (moveData) {
              print('=== onLeave: $moveData ==> $value');
            },
          ),
          //拖动时跟随移动的组件
          feedback: baseItem(value, color: Colors.grey),
          //拖动的时候子组件显示其他样式
          childWhenDragging: null,
          //开始拖动时回调。
          onDragStarted: () {
            print('=== onDragStarted');
            setState(() {
              _movingValue = value; //记录开始拖拽的数据
            });
          },
          //拖动到DragTarget控件上时回调。
          onDragCompleted: () {
            print('=== onDragCompleted');
            setState(() {});
          },
          //未拖动到DragTarget控件上时回调。
          onDraggableCanceled: (Velocity velocity, Offset offset) {
            print('=== onDraggableCanceled');
            setState(() {
              _movingValue = null; //清空标记进行重绘
            });
          },
          //拖动结束时回调。
          onDragEnd: (dragDetail) {},
        );
    

    相关文章

      网友评论

          本文标题:【flutter】draggable基本用法介绍

          本文链接:https://www.haomeiwen.com/subject/ullnwltx.html