首页 > 解决方案 > 可拖动对象无法在 DragTarget 小部件颤动中移动

问题描述

我正在尝试在 DragTarget 中移动/拖放小部件,但不知道是什么问题。这是我的代码:

return Scaffold(
      drawer: DrawerWidget(),
      appBar: AppBar(
        backgroundColor: Colors.white,
        title: Text(
          'Table Layout',
          style: Theme.of(context).textTheme.title.merge(
                TextStyle(letterSpacing: 1.3),
              ),
        ),
        centerTitle: true,
        elevation: 0,
      ),
      body: Container(
        child: Row(
          children: [
            Container(
              color: Colors.blue[100],
              width: MediaQuery.of(context).size.width * 0.30,
              child: ListView.separated(
                padding: const EdgeInsets.all(16.0),
                itemCount: 3,
                separatorBuilder: (context, index) {
                  return const SizedBox(
                    height: 12.0,
                  );
                },
                itemBuilder: (context, index) {
                  return Draggable<String>(
                    data: images[index],
                    dragAnchor: DragAnchor.pointer,
                    feedback: MenuListItem(
                      photoProvider: images[index],
                    ),
                    child: MenuListItem(
                      photoProvider: images[index],
                    ),
                  );
                },
              ),
            ),
            Expanded(
              child: Container(
                height: double.infinity,
                width: double.infinity,
                color: Colors.grey,
                child: DragTarget<String>(
                  builder: (context, candidateItems, rejectedItems) {
                    return Stack(
                      children: targetList.map((image) {
                        return Draggable<String>(
                          data: image,
                          dragAnchor: DragAnchor.pointer,
                          childWhenDragging: Container(),
                          feedback: MenuListItem(
                            photoProvider: image,
                          ),
                          child: MenuListItem(
                            photoProvider: image,
                          ),
                        );
                      }).toList(),
                    );
                  },
                  onWillAccept: (data) {
                    return true;
                  },
                  onAccept: (item) {
                  },
                ),
              ),
            ),
          ],
        ),
      ),
    );

当我运行应用程序时,该元素出现在左上角。我试图通过拖动将该小部件放置在 DragTarget 内的任何位置,但在拖动后它会返回到原来的位置。

谁能帮助我。谢谢

标签: flutterdartdrag-and-drop

解决方案


推荐阅读