Перетаскиваемый виджет Flutter -child всегда создается при перетаскивании - PullRequest
1 голос
/ 09 января 2020

Я пытаюсь реализовать перетаскиваемый виджет в моем приложении флаттера. ImageWidget - это StatefulWidget, который я хочу поместить в перетаскиваемый объект. Я установил тот же объект imageWidget, что и дочерний элемент, и обратную связь виджета Draggable. Когда я перетаскиваю перетаскиваемый виджет, метод сборки ImageWidget вызывается всегда. Как я могу предотвратить это?


void main() => runApp(MyApp());

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => new _MyAppState();
}

class _MyAppState extends State<MyApp> {
  Offset position = Offset(0, 0);
  Widget _image;

  @override
  void initState() {
    super.initState();
    _image = ImageWidget();
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      home: new Scaffold(
        appBar: AppBar(
          title: Text("Drag Image"),
        ),
        body: Container(
            child: Stack(
          children: [
            Positioned(
              top: position.dy,
              left: position.dx,
              child: Draggable(
                maxSimultaneousDrags: 1,
                child: _image,
                feedback: _image,
                childWhenDragging: Container(),
                onDragStarted: () {},
                onDragEnd: (DraggableDetails details) {
                  setState(() {
                    position =
                        Offset(details.offset.dx, details.offset.dy);
                  });
                },
              ),
            )
          ],
        )),
      ),
    );
  }
}

class ImageWidget extends StatefulWidget {
  @override
  _ImageWidgetState createState() => _ImageWidgetState();
}

class _ImageWidgetState extends State<ImageWidget> {
  @override
  Widget build(BuildContext context) {
    print("Inside the build method of ImageWidget");
    return Image.network(
        "https://image.shutterstock.com/image-photo/beautiful-water-drop-on-dandelion-260nw-789676552.jpg",
        width: 200,
        height: 200,);
  }
}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...