颤动:底部被无穷大像素溢出

时间:2018-03-10 14:11:28

标签: android dart flutter

我正在尝试制作一个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。该应用程序似乎正在运行,但底部的错误是一个眼睛。我该如何解决?

1 个答案:

答案 0 :(得分:0)

这个问题似乎无法重现。 child 上定义的 GestureDetector 小部件应设置其高度并防止像素溢出。

但是如果您需要定义屏幕的高度以避免底部溢出,您可以使用 LayoutBuilderMediaQuery 来获取屏幕尺寸。