手动设置偏移位置时可拖动项目消失

问题描述

我正在尝试在图像上实现可拖动,这将使其可以在屏幕上自由拖动。我遇到的问题是,如果我不设置初始偏移坐标,它会使图像出现并且可以在屏幕上拖动,但在拖动结束后返回到原始位置。但是如果我设置偏移值,它会使图像从屏幕上消失。代码如下:

class PlayScreen extends StatefulWidget {
  @override
  _PlayScreenState createState() => _PlayScreenState();
}

class _PlayScreenState extends State<PlayScreen> {
  

  @override
  Widget build(BuildContext context) {
    double _x = 163.0;         //draggable coordinates
    double _y = 197.0;  
    return Scaffold(
      body: Stack(
        children: <Widget>[
          Container(
            constraints: BoxConstraints.expand(),decoration: Boxdecoration(
              image: decorationImage(
                image: Assetimage('assets/images/shared/field.png'),fit: BoxFit.cover,),Row(
            mainAxisAlignment: MainAxisAlignment.start,children: <Widget>[
              SizedBox(height: 20.0.h),Stack(
                children: <Widget>[
                  Positioned(
                    left: _x,top: _y,child: Draggable(
                      child: Image.asset(                        //Draggable Image
                        'assets/images/playScreenImages/worker_with_paint.png',height: 30.0.h,width: 30.0.w,Feedback: Image.asset(
                        'assets/images/playScreenImages/worker_with_paint.png',childWhenDragging: Container(),onDragEnd: (dragDetails) {
                        setState(() {
                          _x = dragDetails.offset.dx;
                          _y = dragDetails.offset.dy;
                          print(_x);
                          print(_y);
                        });
                      },Container(
                    padding: EdgeInsets.only(left: 5.0.w),child: SvgPicture.asset(
                        'assets/images/playScreenImages/score.svg'),],SizedBox(height: 50.0.h),Container(
            alignment: Alignment.center,child: new Image(
              image: Assetimage(unfilledImages[imageCounter]),height: 40.0.h,width: 60.0.w,);
  }
}

我想要实现的是将初始元素(图像)位置设置为 etc.(x,y) 坐标,并且拖动应该在屏幕周围自由拖动,其中元素位置根据用户的拖动而改变。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)