如何在不使用 Flutter 中的 DragTarget 的情况下创建 Draggable?

How do I create a Draggable without using DragTarget in Flutter?

我是 Flutter 的新手。我正在尝试创建一个 Draggable,但我不想使用 DragTarget。我希望它可以拖放到任何我想要的地方。当我在放置操作对象消失后这样做时。我不想让它消失。我怎样才能做到这一点?我检查了资源和 YouTube,但是,我找不到任何有用的东西。提前致谢。

根据我的评论,这是一个代码示例。 您有一个 Stack,带有 Draggable 元素,然后您使用 Positioned 小部件和偏移量将其重建到新位置。 您也可以按照相同的示例重新创建 DragTarget,如果您需要它的功能,只需重新定位它即可。

您可能需要稍微调整偏移量以使其对您的目标元素大小做出反应。

import 'package:flutter/material.dart';

class MyHomePage extends StatefulWidget {
  MyHomePage({Key? key, required this.title}) : super(key: key);
  final String title;

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  bool _started = false;
  Offset _position = Offset(20, 20);

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: SafeArea(
        child: Stack(
          children: <Widget>[
            Positioned(
              top: _position.dy - 30, // Size of widget to reposition correctly
              left: _position.dx,
              child: Draggable(
                child: Chip(label: Text('Element')),
                feedback: Material(
                    child: Chip(
                  label: Text('Element'),
                )),
                onDragEnd: (details) {
                  print(details.offset);
                  setState(() {
                    if (!_started) _started = true;
                    _position = details.offset;
                  });
                },
              ),
            ),
          ],
        ),
      ),
    );
  }
}