问题
======== Exception caught by rendering library =====================================================
The following assertion was thrown during performLayout():
BoxConstraints forces an infinite width.
These invalid constraints were provided to RenderDecoratedBox's layout() function by the following function, which probably computed the invalid constraints in question:
RenderConstrainedBox.performLayout (package:flutter/src/rendering/proxy_box.dart:277:14)
The offending constraints were: BoxConstraints(w=Infinity, h=200.0)
The relevant error-causing widget was:
Container Container:file:///Users/pan/app_flutter/lib/page/my_page.dart:43:22
When the exception was thrown, this was the stack:
#0 BoxConstraints.debugAssertIsValid.<anonymous closure>.throwError (package:flutter/src/rendering/box.dart:516:9)
#1 BoxConstraints.debugAssertIsValid.<anonymous closure> (package:flutter/src/rendering/box.dart:558:11)
#2 BoxConstraints.debugAssertIsValid (package:flutter/src/rendering/box.dart:564:6)
#3 RenderObject.layout (package:flutter/src/rendering/object.dart:1810:24)
#4 RenderConstrainedBox.performLayout (package:flutter/src/rendering/proxy_box.dart:277:14)
#5 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#6 RenderStack.layoutPositionedChild (package:flutter/src/rendering/stack.dart:479:11)
#7 RenderStack.performLayout (package:flutter/src/rendering/stack.dart:592:30)
#8 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#9 RenderConstrainedBox.performLayout (package:flutter/src/rendering/proxy_box.dart:277:14)
#10 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#11 MultiChildLayoutDelegate.layoutChild (package:flutter/src/rendering/custom_layout.dart:171:12)
#12 _ScaffoldLayout.performLayout (package:flutter/src/material/scaffold.dart:1003:7)
#13 MultiChildLayoutDelegate._callPerformLayout (package:flutter/src/rendering/custom_layout.dart:240:7)
#14 RenderCustomMultiChildLayoutBox.performLayout (package:flutter/src/rendering/custom_layout.dart:403:14)
#15 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#16 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#17 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#18 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#19 _RenderCustomClip.performLayout (package:flutter/src/rendering/proxy_box.dart:1376:11)
#20 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#21 ChildLayoutHelper.layoutChild (package:flutter/src/rendering/layout_helper.dart:56:11)
#22 RenderStack._computeSize (package:flutter/src/rendering/stack.dart:552:43)
#23 RenderStack.performLayout (package:flutter/src/rendering/stack.dart:579:12)
#24 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#25 MultiChildLayoutDelegate.layoutChild (package:flutter/src/rendering/custom_layout.dart:171:12)
#26 _ScaffoldLayout.performLayout (package:flutter/src/material/scaffold.dart:1003:7)
#27 MultiChildLayoutDelegate._callPerformLayout (package:flutter/src/rendering/custom_layout.dart:240:7)
#28 RenderCustomMultiChildLayoutBox.performLayout (package:flutter/src/rendering/custom_layout.dart:403:14)
#29 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#30 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#31 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#32 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#33 _RenderCustomClip.performLayout (package:flutter/src/rendering/proxy_box.dart:1376:11)
#34 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#35 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#36 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#37 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#38 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#39 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#40 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#41 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#42 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#43 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#44 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#45 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#46 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#47 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#48 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#49 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#50 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#51 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#52 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#53 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#54 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#55 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#56 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#57 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#58 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#59 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#60 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#61 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#62 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#63 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#64 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#65 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#66 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#67 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#68 RenderOffstage.performLayout (package:flutter/src/rendering/proxy_box.dart:3462:13)
#69 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#70 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#71 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#72 _RenderTheatre.performLayout (package:flutter/src/widgets/overlay.dart:749:15)
#73 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#74 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#75 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#76 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#77 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#78 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#79 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#80 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#81 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#82 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#83 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#84 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#85 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#86 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#87 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#88 RenderView.performLayout (package:flutter/src/rendering/view.dart:165:14)
#89 RenderObject._layoutWithoutResize (package:flutter/src/rendering/object.dart:1757:7)
#90 PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:887:18)
#91 RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:504:19)
#92 WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:892:13)
#93 RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:370:5)
#94 SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1146:15)
#95 SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1083:9)
#96 SchedulerBinding.scheduleWarmUpFrame.<anonymous closure> (package:flutter/src/scheduler/binding.dart:864:7)
(elided 4 frames from class _RawReceivePortImpl, class _Timer, and dart:async-patch)
The following RenderObject was being processed when the exception was fired: RenderConstrainedBox#772b1 relayoutBoundary=up1 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
... parentData: top=160.0; offset=Offset(0.0, 160.0) (can use size)
... constraints: BoxConstraints(unconstrained)
... size: Size(411.4, 200.0)
... additionalConstraints: BoxConstraints(w=Infinity, h=200.0)
RenderObject: RenderConstrainedBox#772b1 relayoutBoundary=up1 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
parentData: top=160.0; offset=Offset(0.0, 160.0) (can use size)
constraints: BoxConstraints(unconstrained)
size: Size(411.4, 200.0)
additionalConstraints: BoxConstraints(w=Infinity, h=200.0)
... child: RenderDecoratedBox#47b34 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
... parentData: <none> (can use size)
... constraints: BoxConstraints(w=411.4, h=200.0)
... size: Size(411.4, 200.0)
... decoration: BoxDecoration
... color: Color(0xffffffff)
... borderRadius: BorderRadius.circular(20.0)
... configuration: ImageConfiguration(bundle: PlatformAssetBundle#cb8cb(), devicePixelRatio: 2.6, locale: en_US, textDirection: TextDirection.ltr, platform: android)
... child: RenderPadding#580e3 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
... parentData: <none> (can use size)
... constraints: BoxConstraints(w=411.4, h=200.0)
... size: Size(411.4, 200.0)
... padding: EdgeInsets(20.0, 10.0, 20.0, 10.0)
... textDirection: ltr
... child: RenderFlex#2dce7 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
... parentData: offset=Offset(20.0, 10.0) (can use size)
... constraints: BoxConstraints(w=371.4, h=180.0)
... size: Size(371.4, 180.0)
... direction: vertical
... mainAxisAlignment: start
... mainAxisSize: max
... crossAxisAlignment: center
... verticalDirection: down
... child 1: RenderSemanticsAnnotations#c40aa relayoutBoundary=up1 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
... parentData: offset=Offset(0.0, 0.0); flex=null; fit=null (can use size)
... constraints: BoxConstraints(0.0<=w<=371.4, 0.0<=h<=Infinity)
... size: Size(371.4, 56.0)
... child 2: RenderSemanticsAnnotations#97602 relayoutBoundary=up1 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
... parentData: offset=Offset(0.0, 56.0); flex=null; fit=null (can use size)
... constraints: BoxConstraints(0.0<=w<=371.4, 0.0<=h<=Infinity)
... size: Size(371.4, 56.0)
====================================================================================================
======== Exception caught by rendering library =====================================================
The following assertion was thrown during performLayout():
BoxConstraints forces an infinite width.
These invalid constraints were provided to RenderDecoratedBox's layout() function by the following function, which probably computed the invalid constraints in question:
RenderConstrainedBox.performLayout (package:flutter/src/rendering/proxy_box.dart:277:14)
The offending constraints were: BoxConstraints(w=Infinity, h=200.0)
The relevant error-causing widget was:
Container Container:file:///Users/pan/app_flutter/lib/page/my_page.dart:43:22
When the exception was thrown, this was the stack:
#0 BoxConstraints.debugAssertIsValid.<anonymous closure>.throwError (package:flutter/src/rendering/box.dart:516:9)
#1 BoxConstraints.debugAssertIsValid.<anonymous closure> (package:flutter/src/rendering/box.dart:558:11)
#2 BoxConstraints.debugAssertIsValid (package:flutter/src/rendering/box.dart:564:6)
#3 RenderObject.layout (package:flutter/src/rendering/object.dart:1810:24)
#4 RenderConstrainedBox.performLayout (package:flutter/src/rendering/proxy_box.dart:277:14)
#5 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#6 RenderStack.layoutPositionedChild (package:flutter/src/rendering/stack.dart:479:11)
#7 RenderStack.performLayout (package:flutter/src/rendering/stack.dart:592:30)
#8 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#9 RenderConstrainedBox.performLayout (package:flutter/src/rendering/proxy_box.dart:277:14)
#10 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#11 MultiChildLayoutDelegate.layoutChild (package:flutter/src/rendering/custom_layout.dart:171:12)
#12 _ScaffoldLayout.performLayout (package:flutter/src/material/scaffold.dart:1003:7)
#13 MultiChildLayoutDelegate._callPerformLayout (package:flutter/src/rendering/custom_layout.dart:240:7)
#14 RenderCustomMultiChildLayoutBox.performLayout (package:flutter/src/rendering/custom_layout.dart:403:14)
#15 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#16 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#17 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#18 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#19 _RenderCustomClip.performLayout (package:flutter/src/rendering/proxy_box.dart:1376:11)
#20 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#21 ChildLayoutHelper.layoutChild (package:flutter/src/rendering/layout_helper.dart:56:11)
#22 RenderStack._computeSize (package:flutter/src/rendering/stack.dart:552:43)
#23 RenderStack.performLayout (package:flutter/src/rendering/stack.dart:579:12)
#24 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#25 MultiChildLayoutDelegate.layoutChild (package:flutter/src/rendering/custom_layout.dart:171:12)
#26 _ScaffoldLayout.performLayout (package:flutter/src/material/scaffold.dart:1003:7)
#27 MultiChildLayoutDelegate._callPerformLayout (package:flutter/src/rendering/custom_layout.dart:240:7)
#28 RenderCustomMultiChildLayoutBox.performLayout (package:flutter/src/rendering/custom_layout.dart:403:14)
#29 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#30 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#31 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#32 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#33 _RenderCustomClip.performLayout (package:flutter/src/rendering/proxy_box.dart:1376:11)
#34 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#35 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#36 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#37 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#38 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#39 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#40 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#41 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#42 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#43 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#44 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#45 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#46 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#47 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#48 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#49 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#50 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#51 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#52 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#53 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#54 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#55 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#56 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#57 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#58 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#59 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#60 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#61 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#62 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#63 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#64 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#65 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#66 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#67 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#68 RenderOffstage.performLayout (package:flutter/src/rendering/proxy_box.dart:3462:13)
#69 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#70 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#71 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#72 _RenderTheatre.performLayout (package:flutter/src/widgets/overlay.dart:749:15)
#73 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#74 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#75 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#76 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#77 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#78 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#79 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#80 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#81 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#82 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#83 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#84 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#85 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#86 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#87 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#88 RenderView.performLayout (package:flutter/src/rendering/view.dart:165:14)
#89 RenderObject._layoutWithoutResize (package:flutter/src/rendering/object.dart:1757:7)
#90 PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:887:18)
#91 RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:504:19)
#92 WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:892:13)
#93 RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:370:5)
#94 SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1146:15)
#95 SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1083:9)
#96 SchedulerBinding.scheduleWarmUpFrame.<anonymous closure> (package:flutter/src/scheduler/binding.dart:864:7)
(elided 4 frames from class _RawReceivePortImpl, class _Timer, and dart:async-patch)
The following RenderObject was being processed when the exception was fired: RenderConstrainedBox#72cb8 relayoutBoundary=up1 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
... parentData: top=160.0; offset=Offset(0.0, 160.0) (can use size)
... constraints: BoxConstraints(unconstrained)
... size: Size(411.4, 200.0)
... additionalConstraints: BoxConstraints(w=Infinity, h=200.0)
RenderObject: RenderConstrainedBox#72cb8 relayoutBoundary=up1 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
parentData: top=160.0; offset=Offset(0.0, 160.0) (can use size)
constraints: BoxConstraints(unconstrained)
size: Size(411.4, 200.0)
additionalConstraints: BoxConstraints(w=Infinity, h=200.0)
... child: RenderDecoratedBox#950ed NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
... parentData: <none> (can use size)
... constraints: BoxConstraints(w=411.4, h=200.0)
... size: Size(411.4, 200.0)
... decoration: BoxDecoration
... color: Color(0xffffffff)
... borderRadius: BorderRadius.circular(20.0)
... configuration: ImageConfiguration(bundle: PlatformAssetBundle#cb8cb(), devicePixelRatio: 2.6, locale: en_US, textDirection: TextDirection.ltr, platform: android)
... child: RenderPadding#90499 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
... parentData: <none> (can use size)
... constraints: BoxConstraints(w=411.4, h=200.0)
... size: Size(411.4, 200.0)
... padding: EdgeInsets(20.0, 10.0, 20.0, 10.0)
... textDirection: ltr
... child: RenderFlex#bd16d NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
... parentData: offset=Offset(20.0, 10.0) (can use size)
... constraints: BoxConstraints(w=371.4, h=180.0)
... size: Size(371.4, 180.0)
... direction: vertical
... mainAxisAlignment: start
... mainAxisSize: max
... crossAxisAlignment: center
... verticalDirection: down
... child 1: RenderSemanticsAnnotations#82cf6 relayoutBoundary=up1 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
... parentData: offset=Offset(0.0, 0.0); flex=null; fit=null (can use size)
... constraints: BoxConstraints(0.0<=w<=371.4, 0.0<=h<=Infinity)
... size: Size(371.4, 56.0)
... child 2: RenderSemanticsAnnotations#18e79 relayoutBoundary=up1 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
... parentData: offset=Offset(0.0, 56.0); flex=null; fit=null (can use size)
... constraints: BoxConstraints(0.0<=w<=371.4, 0.0<=h<=Infinity)
... size: Size(371.4, 56.0)
====================================================================================================
解决
Positioned必须限制宽度,不可设置为double.infinity之类的,否则报错;
当父小组件有一个无限的容器,而子小组件有无限的宽度或高度时,这个错误就会发生。
width: MediaQuery.of(context).size.width
或者
Positioned( top:30, left:20, //set left 0, to start without margin at left right:30, //set right 0 to end without margin at right bottom:100, child: Container( color: Colors.red, ), )
延伸一 Row 的 BoxConstraints forces an infinite width
Row( children:[ Container( width: double.infinity, ) ] ) //Error: BoxConstraints forces an infinite width.
解决
Row(
children:[
Expanded(
child:Container(
width: double.infinity,
)
)
]
)
延伸二 约束类的容器组件有哪些
- ConstrainedBox:适用于需要设置最大/小宽高,组件大小以来子组件大小,但不能超过设置的界限。
- UnconstrainedBox:用到情况不多,当作ConstrainedBox的子组件可以“突破”ConstrainedBox的限制,超出界限的部分会被截取。
- SizedBox:适用于固定宽高的情况,常用于当作2个组件之间间隙组件。
- AspectRatio:适用于固定宽高比的情况。
- FractionallySizedBox:适用于占父组件百分比的情况。
- LimitedBox:适用于没有父组件约束的情况。
- Container:适用于不仅有尺寸的约束,还有装饰(颜色、边框、等)、内外边距等需求的情况。