我正在尝试制作一个Flutter应用,可以使用GestureDetector
响应屏幕上任意位置的点按。这是我的代码:
void main() => runApp(new MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new MaterialApp(
title: "App",
home: new MyScreen(),
);
}
}
class MyScreen extends StatefulWidget {
@override
State createState() => new MyScreenState();
}
class MyScreenState extends State<MyScreen> {
String _text = "Hello";
@override
Widget build(BuildContext context) {
_onTapUp(TapUpDetails details) {
var x = details.globalPosition.dx;
var y = details.globalPosition.dy;
print("tap up " + x.toString() + ", " + y.toString());
setState(() {
_text = "Hello world";
});
}
return new GestureDetector(
onTapUp: _onTapUp,
child: new Scaffold(
appBar: new AppBar(
title: new Text("App")
),
body: new Text(_text),
),
);
}
}
但是,当我运行该应用时,模拟器底部会显示错误BOTTOM OVERFLOWED BY Infinity PIXELS
。该应用程序似乎正在运行,但底部的错误是一个眼睛。我该如何解决?
答案 0 :(得分:0)
这个问题似乎无法重现。 child
上定义的 GestureDetector
小部件应设置其高度并防止像素溢出。
但是如果您需要定义屏幕的高度以避免底部溢出,您可以使用 LayoutBuilder 或 MediaQuery 来获取屏幕尺寸。