import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter/widgets.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
// This widget is the root of your application.
int _page = 0;
@override
Widget build(BuildContext context) {
const bgColor = [Colors.red,Colors.green,Colors.yellow];
bool isCheck = true;
return MaterialApp(
home: HomePage()
);
}
}
class HomePage extends StatefulWidget {
@override
_HomePageState createState() => _HomePageState();
}
class _HomePageState extends State<HomePage> {
int num = 1;
double _left = 0;
double _top = 0;
double _maxWidth = 0;
double _maxHeight = 0;
double _width = 300;
double _height = 200;
TextEditingController _controll=TextEditingController();
GlobalKey _gKey = GlobalKey();
@override
void initState() {
super.initState();
WidgetsBinding.instance.addPostFrameCallback((_){
print("addPostFrameCallback");
//初始获取手机屏幕宽高
_maxWidth = _gKey.currentContext.size.width;
_maxHeight = _gKey.currentContext.size.height;
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('LOL',style: TextStyle(color: Colors.yellow),),
),
body: GestureDetector(
onPanUpdate: (DragUpdateDetails details){
setState(() {
_left += details.delta.dx;
_top += details.delta.dy;
//设定移动范围
if(_left > _maxWidth - 200)
_left = _maxWidth - 200;
if(_top > _maxHeight - 200)
_top = _maxHeight - 200;
if(_left < 0)
_left = 0;
if(_top < 0)
_top = 0;
});
},
child: Stack(
key: _gKey,
children: <Widget>[
Positioned(
left: _left,
top: _top,
width: 200,
height: 200,
child: Container(
color: Colors.yellow,
),
)
],
),
),
);
}
}
