import ‘package:flutter/material.dart‘;
class DraggableWidget extends StatefulWidget {
final Offset offset;
final Color widgetColor;
const DraggableWidget({Key key,this.offset,this.widgetColor}):super(key:key);
@override
_DraggableWidgetState createState() => _DraggableWidgetState();
}
class _DraggableWidgetState extends State<DraggableWidget> {
Offset offset = Offset(0.0, 0.0);
@override
void initState() {
super.initState();
offset = widget.offset;//取传进来的offset
}
@override
Widget build(BuildContext context) {
return Positioned(
left: offset.dx,
top: offset.dy,
child: Draggable(//可拖动的组件
data: widget.widgetColor,//传递xxx给接收器 xxx此处为颜色 此处要和接收器的onAccept 相对应
child: Container(
width: 100.0,
height: 100.0,
color: widget.widgetColor,//传递过来的颜色
),
feedback: Container(
width: 120,
height: 120,
color: widget.widgetColor.withOpacity(0.5),//半透明
),//当拖动的时候的样式
onDraggableCanceled: (Velocity velocity,Offset offset){
setState(() {
this.offset = offset;//拖动结束
});
},//拖拽完成
),
);
}
}