Я довольно новичок во Flutter и все еще пытаюсь понять взаимодействие между классами и виджетами. Для моего текущего проекта я хочу «перетащить» Draggable, который находится в диалоговом окне, а затем переместить его из диалогового окна в DragTarget, который находится за диалоговым окном.
В настоящее время у меня есть три класса, DragIconComponent, MenuComponent и MainPage. Диалоговое окно находится в MenuComponent. Я знаю, что это очень неортодоксальный метод работы с перетаскиваемыми элементами между классами, и все, что я пытаюсь до сих пор, не работает, так как DragTarget блокируется фоном (?) Диалогового окна.
Вот где мой виджет Draggable:
class DragIconComponentState extends State<DragIconComponent> {
Widget _menuIcon() {
return Container(
child: Image.asset(...)
);
}
Widget _disabledMenuIcon() {
return Container(
child: Image.asset(...)
);
}
@override
Widget build(BuildContext context) {
return Draggable(
child: _menuIcon(),
),
feedback: _menuIcon(),
childWhenDragging: _disabledMenuIcon(),
onDragCompleted: () {
Navigator.of(context, rootNavigator: true).pop();
},
);
}
}
И я собираюсь переместить виджет Draggable на главную страницу:
class _MainPageState extends State<MainPage> {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Container(
height: MediaQuery.of(context).size.height,
width: MediaQuery.of(context).size.width,
color: Palette.black,
child: DragTarget(
builder: (BuildContext context, List<dynamic> accepted, List<dynamic> rejected) {
...................
},
),
),
);
}
}
Я бы Хотелось бы узнать, возможно ли реализовать то, что я пытаюсь сделать, и если нет, возможно, есть обходной путь, который может достичь того же эффекта?
Заранее спасибо.