Flutter 颤振应用程序无法呈现,错误为“;“底部溢出无限像素”;
我正在尝试在我的应用程序中加入基于firebase的登录。 我在这里学习教程- 这是我的密码-Flutter 颤振应用程序无法呈现,错误为“;“底部溢出无限像素”;,flutter,dart,flutter-layout,Flutter,Dart,Flutter Layout,我正在尝试在我的应用程序中加入基于firebase的登录。 我在这里学习教程- 这是我的密码- @覆盖 小部件构建(构建上下文){ _isIos=Theme.of(context.platform==TargetPlatform.iOS; 归还新脚手架( appBar:新的appBar( 标题:新文本(“Vroom-专用拼车”), ), 主体:堆栈( 儿童:[ _showBody(), _showCircularProgress(), ], )); } Widget_showBody(){ 退回
@覆盖
小部件构建(构建上下文){
_isIos=Theme.of(context.platform==TargetPlatform.iOS;
归还新脚手架(
appBar:新的appBar(
标题:新文本(“Vroom-专用拼车”),
),
主体:堆栈(
儿童:[
_showBody(),
_showCircularProgress(),
],
));
}
Widget_showBody(){
退回新货柜(
填充:所有边缘设置(16.0),
儿童:新表格(
键:_formKey,
子:新列表视图(
收缩膜:对,
儿童:[
_showLogo(),
_showEmailInput(),
_showPasswordInput(),
_showPrimaryButton(),
_ShowSecondary按钮(),
_错误消息(),
],
),
));
}
小部件_showCircularProgress(){
如果(_isLoading){
返回中心(子项:CircularProgressIndicator());
}返回容器(高度:100,);
}
Widget_showLogo(){
回归新英雄(
标签:“英雄”,
孩子:填充(
填充:从LTRB(0.0,70.0,0.0,0.0)开始的边缘设置,
孩子:圆环星(
背景颜色:颜色。透明,
半径:48.0,
子项:Image.asset('assets/flattericon.png'),
),
),
);
}
小部件_showEmailInput(){
返回填充(
填充:从LTRB(0.0,15.0,0.0,0.0)开始的常数边集,
子项:新建TextFormField(
maxLines:1,
键盘类型:TextInputType.emailAddress,
自动对焦:错误,
装饰:新的输入装饰(
hintText:“电子邮件”,
图标:新图标(
Icons.mail,
颜色:颜色。灰色,
)),
验证器:(值){
if(value.isEmpty){
返回“请输入电子邮件地址!”;
}
if(EmailValidator.validate(值)){
return“请输入有效的电子邮件地址!”;
}
返回null;
},
onSaved:(value)=>\u email=value.trim(),
),
);
}
小部件_showPasswordInput(){
返回填充(
填充:从LTRB(0.0,15.0,0.0,0.0)开始的常数边集,
子项:新建TextFormField(
maxLines:1,
蒙昧文字:对,
自动对焦:错误,
装饰:新的输入装饰(
hintText:'密码',
图标:新图标(
Icons.lock,
颜色:颜色。灰色,
)),
验证程序:(value)=>value.isEmpty?“请输入密码”:null,
onSaved:(value)=>\u password=value.trim(),
),
);
}
小部件_showSecondaryButton(){
返回新的扁平按钮(
子项:_formMode==formMode.LOGIN
?新文本(“创建帐户”,
样式:新文本样式(fontSize:18.0,fontWeight:fontWeight.w300))
:新建文本('拥有帐户?登录',
风格:
新的文本样式(fontSize:18.0,fontWeight:fontWeight.w300)),
onPressed:_formMode==formMode.LOGIN
?\u更改为注册
:_changeFormToLogin,
);
}
小部件_showPrimaryButton(){
返回新的填充(
填充:从LTRB(0.0,45.0,0.0,0.0)开始的边缘设置,
孩子:大小盒子(
身高:40.0,
孩子:新升起的按钮(
标高:5.0,
形状:新的RoundedRectangleBorder(borderRadius:新的borderRadius.circular(30.0)),
颜色:颜色,蓝色,
子项:_formMode==formMode.LOGIN
?新文本('登录',
样式:新文本样式(fontSize:20.0,颜色:Colors.white))
:新文本('创建帐户',
样式:新文本样式(fontSize:20.0,颜色:Colors.white)),
按下时:_validateAndSubmit,
),
));
}
小部件(消息){
如果(_errorMessage.length>0&&u errorMessage!=null){
返回新文本(
_错误消息,
样式:TextStyle(
字体大小:13.0,
颜色:颜色,红色,
高度:1.0,
fontWeight:fontWeight.w300),
);
}否则{
返回null;
}
}
我试着从Scaffold
中删除堆栈
,并且一直在尝试将我的旧小部件放到表单中,但似乎无法修复它
这是堆栈跟踪-
flutter: ══╡ EXCEPTION CAUGHT BY RENDERING LIBRARY ╞═════════════════════════════════════════════════════════
flutter: The following assertion was thrown during performLayout():
flutter: FlutterError contained multiple error summaries.
flutter: All FlutterError objects should have only a single short (one line) summary description of the
flutter: problem that was detected.
flutter: Malformed FlutterError:
flutter: RenderCustomMultiChildLayoutBox object was given an infinite size during layout.
flutter: This probably means that it is a render object that tries to be as big as possible, but it was put
flutter: inside another render object that allows its children to pick their own size.
flutter: RenderCustomMultiChildLayoutBox object was given an infinite size during layout.
flutter: This probably means that it is a render object that tries to be as big as possible, but it was put
flutter: inside another render object that allows its children to pick their own size.
flutter: The nearest ancestor providing an unbounded height constraint is: RenderFlex#6fcb6 relayoutBoundary=up2 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE OVERFLOWING:
flutter: needs compositing
flutter: creator: Column ← Center ← MediaQuery ← LayoutId-[<_ScaffoldSlot.body>] ← CustomMultiChildLayout ←
flutter: AnimatedBuilder ← DefaultTextStyle ← AnimatedDefaultTextStyle ← _InkFeatures-[GlobalKey#c780d ink
flutter: renderer] ← NotificationListener<LayoutChangedNotification> ← PhysicalModel ←
flutter: AnimatedPhysicalModel ← ⋯
flutter: parentData: offset=Offset(0.0, 0.0) (can use size)
flutter: constraints: BoxConstraints(0.0<=w<=414.0, 0.0<=h<=796.0)
flutter: size: Size(414.0, 796.0)
flutter: direction: vertical
flutter: mainAxisAlignment: start
flutter: mainAxisSize: max
flutter: crossAxisAlignment: center
flutter: verticalDirection: down
flutter: The constraints that applied to the RenderCustomMultiChildLayoutBox were:
flutter: BoxConstraints(0.0<=w<=414.0, 0.0<=h<=Infinity)
flutter: The exact size it was given was:
flutter: Size(414.0, Infinity)
flutter: See https://flutter.dev/docs/development/ui/layout/box-constraints for more information.
flutter:
flutter: The malformed error has 2 summaries.
flutter: Summary 1: RenderCustomMultiChildLayoutBox object was given an infinite size during layout.
flutter: Summary 2: RenderCustomMultiChildLayoutBox object was given an infinite size during layout.
flutter:
flutter: This error should still help you solve your problem, however please also report this malformed error
flutter: in the framework by filing a bug on GitHub:
flutter: https://github.com/flutter/flutter/issues/new?template=BUG.md
flutter:
flutter: When the exception was thrown, this was the stack:
[38;5;244mflutter: #0 new FlutterError.fromParts.<anonymous closure>[39;49m
[38;5;244mflutter: #1 new FlutterError.fromParts[39;49m
[38;5;244mflutter: #2 RenderBox.debugAssertDoesMeetConstraints.<anonymous closure>[39;49m
[38;5;244mflutter: #3 RenderBox.debugAssertDoesMeetConstraints[39;49m
[38;5;244mflutter: #4 RenderBox.size=.<anonymous closure>[39;49m
[38;5;244mflutter: #5 RenderBox.size=[39;49m
[38;5;244mflutter: #6 RenderCustomMultiChildLayoutBox.performLayout[39;49m
[38;5;244mflutter: #7 RenderObject.layout[39;49m
[38;5;244mflutter: #8 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout[39;49m
[38;5;244mflutter: #9 RenderObject.layout[39;49m
[38;5;244mflutter: #10 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout[39;49m
[38;5;244mflutter: #11 _RenderCustomClip.performLayout[39;49m
[38;5;244mflutter: #12 RenderObject.layout[39;49m
[38;5;244mflutter: #13 RenderFlex.performLayout[39;49m
[38;5;244mflutter: #14 RenderObject.layout[39;49m
[38;5;244mflutter: #15 RenderPositionedBox.performLayout[39;49m
[38;5;244mflutter: #16 RenderObject.layout[39;49m
[38;5;244mflutter: #17 MultiChildLayoutDelegate.layoutChild[39;49m
[38;5;244mflutter: #18 _ScaffoldLayout.performLayout[39;49m
[38;5;244mflutter: #19 MultiChildLayoutDelegate._callPerformLayout[39;49m
[38;5;244mflutter: #20 RenderCustomMultiChildLayoutBox.performLayout[39;49m
[38;5;244mflutter: #21 RenderObject.layout[39;49m
[38;5;244mflutter: #22 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout[39;49m
[38;5;244mflutter: #23 RenderObject.layout[39;49m
[38;5;244mflutter: #24 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout[39;49m
[38;5;244mflutter: #25 _RenderCustomClip.performLayout[39;49m
[38;5;244mflutter: #26 RenderObject.layout[39;49m
[38;5;244mflutter: #27 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout[39;49m
[38;5;244mflutter: #28 RenderObject.layout[39;49m
[38;5;244mflutter: #29 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout[39;49m
[38;5;244mflutter: #30 RenderObject.layout[39;49m
[38;5;244mflutter: #31 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout[39;49m
[38;5;244mflutter: #32 RenderObject.layout[39;49m
[38;5;244mflutter: #33 RenderStack.performLayout[39;49m
[38;5;244mflutter: #34 RenderObject.layout[39;49m
[38;5;244mflutter: #35 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout[39;49m
[38;5;244mflutter: #36 RenderObject.layout[39;49m
[38;5;244mflutter: #37 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout[39;49m
[38;5;244mflutter: #38 RenderObject.layout[39;49m
[38;5;244mflutter: #39 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout[39;49m
[38;5;244mflutter: #40 RenderObject.layout[39;49m
[38;5;244mflutter: #41 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout[39;49m
[38;5;244mflutter: #42 RenderObject.layout[39;49m
[38;5;244mflutter: #43 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout[39;49m
[38;5;244mflutter: #44 RenderObject.layout[39;49m
[38;5;244mflutter: #45 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout[39;49m
[38;5;244mflutter: #46 RenderOffstage.performLayout[39;49m
[38;5;244mflutter: #47 RenderObject.layout[39;49m
[38;5;244mflutter: #48 RenderStack.performLayout[39;49m
[38;5;244mflutter: #49 RenderObject.layout[39;49m
[38;5;244mflutter: #50 __RenderTheatre&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout[39;49m
[38;5;244mflutter: #51 RenderObject.layout[39;49m
[38;5;244mflutter: #52 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout[39;49m
[38;5;244mflutter: #53 RenderObject.layout[39;49m
[38;5;244mflutter: #54 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout[39;49m
[38;5;244mflutter: #55 RenderObject.layout[39;49m
[38;5;244mflutter: #56 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout[39;49m
[38;5;244mflutter: #57 RenderObject.layout[39;49m
[38;5;244mflutter: #58 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout[39;49m
[38;5;244mflutter: #59 RenderObject.layout[39;49m
[38;5;244mflutter: #60 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout[39;49m
[38;5;244mflutter: #61 RenderObject.layout[39;49m
[38;5;244mflutter: #62 RenderView.performLayout[39;49m
[38;5;244mflutter: #63 RenderObject._layoutWithoutResize[39;49m
[38;5;244mflutter: #64 PipelineOwner.flushLayout[39;49m
[38;5;244mflutter: #65 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding.drawFrame[39;49m
[38;5;244mflutter: #66 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding&WidgetsBinding.drawFrame[39;49m
[38;5;244mflutter: #67 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding._handlePersistentFrameCallback[39;49m
[38;5;244mflutter: #68 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding._invokeFrameCallback[39;49m
[38;5;244mflutter: #69 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding.handleDrawFrame[39;49m
[38;5;244mflutter: #70 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding.scheduleWarmUpFrame.<anonymous closure>[39;49m
[38;5;244mflutter: #72 _Timer._runTimers (dart:isolate-patch/timer_impl.dart:382:19)[39;49m
[38;5;244mflutter: #73 _Timer._handleMessage (dart:isolate-patch/timer_impl.dart:416:5)[39;49m
[38;5;244mflutter: #74 _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:172:12)[39;49m
flutter: (elided one frame from package dart:async-patch)
flutter:
flutter: The following RenderObject was being processed when the exception was fired: RenderCustomMultiChildLayoutBox#92e49 relayoutBoundary=up5 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE:
flutter: needs compositing
flutter: creator: CustomMultiChildLayout ← AnimatedBuilder ← DefaultTextStyle ← AnimatedDefaultTextStyle ←
flutter: _InkFeatures-[GlobalKey#2e3cd ink renderer] ← NotificationListener<LayoutChangedNotification> ←
flutter: PhysicalModel ← AnimatedPhysicalModel ← Material ← PrimaryScrollController ← _ScaffoldScope ←
flutter: Scaffold ← ⋯
flutter: parentData: <none> (can use size)
flutter: constraints: BoxConstraints(0.0<=w<=414.0, 0.0<=h<=Infinity)
flutter: size: Size(414.0, Infinity)
flutter: This RenderObject had the following descendants (showing up to depth 5):
flutter: child 1: RenderStack#5c359 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
flutter: child 1: RenderPadding#4dbd0 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
flutter: child: _RenderScrollSemantics#fa036 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
flutter: child: RenderPointerListener#f9d94 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
flutter: child: RenderSemanticsGestureHandler#0811d NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
flutter: child 2: RenderConstrainedBox#bfa84 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
flutter: child: RenderLimitedBox#5e655 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
flutter: child: RenderConstrainedBox#09e70 NEEDS-LAYOUT NEEDS-PAINT
flutter: child 2: RenderConstrainedBox#0af7b NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
flutter: child: RenderSemanticsAnnotations#392dd NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
flutter: child: RenderAnnotatedRegion<SystemUiOverlayStyle>#1a056 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
Reloaded 2 of 460 libraries in 413ms.
flutter: child: RenderPhysicalModel#1c1a6 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
flutter: child: _RenderInkFeatures#e54f0 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
flutter: child 3: RenderStack#00dd6 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
flutter: child 1: RenderTransform#32881 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
flutter: child: RenderTransform#f74bd NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
flutter: child 4: RenderPointerListener#c61fe NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
flutter: ════════════════════════════════════════════════════════════════════════════════════════════════════
flutter: Another exception was thrown: FlutterError contained multiple error summaries.
flutter: Another exception was thrown: FlutterError contained multiple error summaries.
flutter: Another exception was thrown: A RenderFlex overflowed by Infinity pixels on the bottom.
颤振:══╡ 呈现库捕获到异常╞═════════════════════════════════════════════════════════
颤振:在performLayout()期间抛出了以下断言:
颤振:颤振错误包含多个错误摘要。
颤振:所有颤振错误对象应该只有一个简短(一行)的
颤振:检测到的问题。
颤振:格式错误的颤振错误:
颤振:在布局过程中,RenderCustomMultiChildLayoutBox对象的大小为无限大。
颤振:这可能意味着它是一个试图尽可能大的渲染对象,但它被放置了
颤振:在另一个渲染对象内,允许其子对象选择自己的大小。
颤振:在布局过程中,RenderCustomMultiChildLayoutBox对象的大小为无限大。
颤振:这可能意味着它是一个试图尽可能大的渲染对象,但它被放置了
颤振:在另一个渲染对象内,允许其子对象选择自己的大小。
颤振:提供无界高度约束的最近祖先是:RenderFlex#6fcb6 relayoutBoundary=up2 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE溢出:
颤振:需要合成
颤振:crea
resizeToAvoidBottomInset: false, // to Scaffold
SingleChildScrollView(
child:// your UI
)
@override
Widget build(BuildContext context) {
return new Scaffold(
appBar: new AppBar(
title: new Text('Vroom - Exclusive carpool'),
),
body: Stack(
children: <Widget>[
_showBody(),
_showCircularProgress(),
],
),
);
}
Widget _showBody() {
return new Container(
padding: EdgeInsets.all(16.0),
child: new Form(
child: new ListView(
shrinkWrap: true,
children: <Widget>[
_showLogo(),
_showEmailInput(),
_showPasswordInput(),
_showPrimaryButton(),
_showSecondaryButton(),
_showErrorMessage(),
],
),
),
);
}
bool _isLoading = false;
Widget _showCircularProgress() {
if (_isLoading) {
return Center(child: CircularProgressIndicator());
}
return Container(
height: 100,
);
}
Widget _showLogo() {
return new Hero(
tag: 'hero',
child: Padding(
padding: EdgeInsets.fromLTRB(0.0, 90.0, 0.0, 0.0),
child: CircleAvatar(
backgroundColor: Colors.transparent,
radius: 48.0,
child: Placeholder(),
),
),
);
}
Widget _showEmailInput() {
return Padding(
padding: const EdgeInsets.fromLTRB(0.0, 15.0, 0.0, 0.0),
child: new TextFormField(
maxLines: 1,
keyboardType: TextInputType.emailAddress,
autofocus: false,
decoration: new InputDecoration(
hintText: 'Email',
icon: new Icon(
Icons.mail,
color: Colors.grey,
),
),
),
);
}
Widget _showPasswordInput() {
return Padding(
padding: const EdgeInsets.fromLTRB(0.0, 15.0, 0.0, 0.0),
child: new TextFormField(
maxLines: 1,
obscureText: true,
autofocus: false,
decoration: new InputDecoration(
hintText: 'Password',
icon: new Icon(
Icons.lock,
color: Colors.grey,
)),
validator: (value) => value.isEmpty ? 'Please enter your password' : null,
),
);
}
Widget _showSecondaryButton() {
return FlatButton(
child: Text("Secondary button"),
onPressed: () {},
);
}
Widget _showPrimaryButton() {
return new Padding(
padding: EdgeInsets.fromLTRB(0.0, 45.0, 0.0, 0.0),
child: SizedBox(
height: 40.0,
child: new RaisedButton(
elevation: 5.0,
shape: new RoundedRectangleBorder(borderRadius: new BorderRadius.circular(30.0)),
color: Colors.blue,
onPressed: (){},
child: Text("Primary Button"),
),
),
);
}
Widget _showErrorMessage() {
return Text("This is your error message.");
}
body: SingleChildScrollView(
child: Stack(
children: <Widget>[
_showBody(),
_showCircularProgress(),
],
),
),