flutter 使用TextField,放在Row引起报错

4,191 阅读3分钟

解决: 在外层加入Expanded

Performing hot reload...                                               /I/flutter ( 3628): ══╡ EXCEPTION CAUGHT BY RENDERING LIBRARY ╞═════════════════════════════════════════════════════════
I/flutter ( 3628): The following assertion was thrown during performLayout():
I/flutter ( 3628): An InputDecorator, which is typically created by a TextField, cannot have an unbounded width.
I/flutter ( 3628): This happens when the parent widget does not provide a finite width constraint. For example, if the
I/flutter ( 3628): InputDecorator is contained by a Row, then its width must be constrained. An Expanded widget or a
I/flutter ( 3628): SizedBox can be used to constrain the width of the InputDecorator or the TextField that contains it.
I/flutter ( 3628): 'package:flutter/src/material/input_decorator.dart':
I/flutter ( 3628): Failed assertion: line 910 pos 7: 'layoutConstraints.maxWidth < double.infinity'
I/flutter ( 3628): Either the assertion indicates an error in the framework itself, or we should provide substantially
I/flutter ( 3628): more information in this error message to help you determine and fix the underlying cause.
I/flutter ( 3628): In either case, please report this assertion by filing a bug on GitHub:
I/flutter ( 3628):   https://github.com/flutter/flutter/issues/new?template=BUG.md
I/flutter ( 3628): Widget creation tracking is currently disabled. Enabling it enables improved error messages. It can
I/flutter ( 3628): be enabled by passing `--track-widget-creation` to `flutter run` or `flutter test`.
I/flutter ( 3628): When the exception was thrown, this was the stack:
I/flutter ( 3628): #2      _RenderDecoration._layout (package:flutter/src/material/input_decorator.dart:910:7)
I/flutter ( 3628): #3      _RenderDecoration.performLayout (package:flutter/src/material/input_decorator.dart:1214:44)
I/flutter ( 3628): #4      RenderObject.layout (package:flutter/src/rendering/object.dart:1701:7)
I/flutter ( 3628): #5      RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
I/flutter ( 3628): #6      RenderObject.layout (package:flutter/src/rendering/object.dart:1701:7)
I/flutter ( 3628): #7      RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
I/flutter ( 3628): #8      RenderObject.layout (package:flutter/src/rendering/object.dart:1701:7)
I/flutter ( 3628): #9      RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)

Reloaded 0 of 475 libraries in 296ms.
I/flutter ( 3628): #10     RenderObject.layout (package:flutter/src/rendering/object.dart:1701:7)
I/flutter ( 3628): #11     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
I/flutter ( 3628): #12     RenderObject.layout (package:flutter/src/rendering/object.dart:1701:7)
I/flutter ( 3628): #13     RenderFlex.performLayout (package:flutter/src/rendering/flex.dart:744:15)
I/flutter ( 3628): #14     RenderObject.layout (package:flutter/src/rendering/object.dart:1701:7)
I/flutter ( 3628): #15     RenderConstrainedBox.performLayout (package:flutter/src/rendering/proxy_box.dart:259:13)
I/flutter ( 3628): #16     RenderObject.layout (package:flutter/src/rendering/object.dart:1701:7)
I/flutter ( 3628): #17     RenderFlex.performLayout (package:flutter/src/rendering/flex.dart:744:15)
I/flutter ( 3628): #18     RenderObject.layout (package:flutter/src/rendering/object.dart:1701:7)
I/flutter ( 3628): #19     RenderConstrainedBox.performLayout (package:flutter/src/rendering/proxy_box.dart:259:13)
I/flutter ( 3628): #20     RenderObject.layout (package:flutter/src/rendering/object.dart:1701:7)
I/flutter ( 3628): #21     MultiChildLayoutDelegate.layoutChild (package:flutter/src/rendering/custom_layout.dart:142:11)
I/flutter ( 3628): #22     _ScaffoldLayout.performLayout (package:flutter/src/material/scaffold.dart:444:7)
I/flutter ( 3628): #23     MultiChildLayoutDelegate._callPerformLayout (package:flutter/src/rendering/custom_layout.dart:212:7)
I/flutter ( 3628): #24     RenderCustomMultiChildLayoutBox.performLayout (package:flutter/src/rendering/custom_layout.dart:356:14)
I/flutter ( 3628): #25     RenderObject.layout (package:flutter/src/rendering/object.dart:1701:7)
I/flutter ( 3628): #26     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
I/flutter ( 3628): #27     RenderObject.layout (package:flutter/src/rendering/object.dart:1701:7)
I/flutter ( 3628): #28     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
I/flutter ( 3628): #29     _RenderCustomClip.performLayout (package:flutter/src/rendering/proxy_box.dart:1232:11)
I/flutter ( 3628): #30     RenderObject.layout (package:flutter/src/rendering/object.dart:1701:7)
I/flutter ( 3628): #31     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
I/flutter ( 3628