
WidgetsBinding.instance.addPostFrameCallback((_) async {
Overlay.of(context)?.insert(_entry());
});
OverlayEntry _entry() {
return OverlayEntry(builder: (ctx) {
return DraggableComponentOrderStatuWidget(
Offset(ctx.width - 100, ctx.height / 3));
});
}
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:upower/common/style/common_style.dart';
class DraggableComponentOrderStatuWidget extends StatefulWidget {
DraggableComponentOrderStatuWidget(this.offsetParam, {super.key});
Offset offsetParam;
@override
State<DraggableComponentOrderStatuWidget> createState() =>
_DraggableComponentOrderStatuWidgetState();
}
class _DraggableComponentOrderStatuWidgetState
extends State<DraggableComponentOrderStatuWidget> {
Offset? _offset;
Widget _getContentWidget() {
return Container(
alignment: Alignment.center,
width: 100,
height: 30,
decoration: const BoxDecoration(
color: ColorStyle.primaryC2,
borderRadius: BorderRadius.only(
topLeft: Radius.circular(15), bottomLeft: Radius.circular(15)),
),
child: Text(
"租赁中",
style: TextStyle(
fontSize: 12.sp,
color: Colors.white,
decoration: TextDecoration.none),
),
);
}
@override
void initState() {
super.initState();
_offset = widget.offsetParam;
}
@override
Widget build(BuildContext context) {
return Stack(
children: [
Positioned(
right: 0,
top: _offset?.dy,
child: Draggable(
feedback: _getContentWidget(),
childWhenDragging: Text(""),
onDraggableCanceled: (velocity, offset) {
setState(() {
_offset = offset;
});
},
child: _getContentWidget(),
),
),
],
);
}
}

- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67