如何解决无限像素溢出的底部?
Posted
技术标签:
【中文标题】如何解决无限像素溢出的底部?【英文标题】:How to resolve bottom overflowed by infinity pixels? 【发布时间】:2018-08-18 23:38:45 【问题描述】:我正在尝试使用GestureDetector
制作一个可以响应屏幕上任意位置点击的 Flutter 应用。这是我的代码:
void main() => runApp(MyApp());
class MyApp extends StatelessWidget
@override
Widget build(BuildContext context)
return MaterialApp(
title: "App",
home: MyScreen(),
);
class MyScreen extends StatefulWidget
@override
State createState() => 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 GestureDetector(
onTapUp: _onTapUp,
child: Scaffold(
appBar: AppBar(
title: Text("App")
),
body: Text(_text),
),
);
但是,当我运行该应用程序时,模拟器底部会出现一个错误,上面写着BOTTOM OVERFLOWED BY Infinity PIXELS
。该应用程序似乎正在运行,但底部的错误令人眼花缭乱。我该如何解决?
【问题讨论】:
无法复制。我复制粘贴了你的代码,没有溢出。 @Darky 我的错误 - 代码不是完全最新的。但是,很难调试此错误,因为它会间歇性出现,并且需要几轮重建/重新运行才能使在模拟器上运行的应用程序真正更新。 我遇到了类似的问题(但不是无限像素)。我最终来到***.com/a/49614547/5766375 并使用了这个解决方案,我用 SingleChildScrollView 包裹了我的专栏。 也许你可以看看这个link :) 我已经尝试过您的代码,它似乎工作正常。我点击屏幕的所有内容都会正确返回x
和y
坐标。如果有机会,您能否提供一个屏幕截图并至少突出显示屏幕中出现该错误的区域?
【参考方案1】:
这个问题似乎无法重现。 GestureDetector
上定义的 child
小部件应设置其高度并防止像素溢出。
但如果您需要定义屏幕高度以避免底部溢出,您可以使用LayoutBuilder 或MediaQuery 获取屏幕尺寸。
【讨论】:
以上是关于如何解决无限像素溢出的底部?的主要内容,如果未能解决你的问题,请参考以下文章
Jqgrid寻呼机(顶部或底部)太多自定义按钮然后溢出图片和文本,如何解决?