Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TextField in dynamic BotoomBar causes it to crash #84863

Closed
SamStrike0809 opened this issue Jun 18, 2021 · 3 comments
Closed

TextField in dynamic BotoomBar causes it to crash #84863

SamStrike0809 opened this issue Jun 18, 2021 · 3 comments
Labels
r: invalid Issue is closed as not valid

Comments

@SamStrike0809
Copy link

Code i wrote for the bottom container:

FloatingActionButton( onPressed: () { showModalBottomSheet( backgroundColor: Colors.transparent, context: context, builder: (context) => BottomBarContainer()); },

BottomBuildContainer class returns a stateful container:

Container( margin: EdgeInsets.symmetric(horizontal: 10, vertical: 30), width: MediaQuery.of(context).size.width, decoration: BoxDecoration( color: Colors.lightBlueAccent, borderRadius: BorderRadius.vertical( top: Radius.circular(30), bottom: Radius.circular(30), ), ), child: Column( children: [ Container( child: Text( 'New Task', style: TextStyle( color: Colors.white, fontSize: 34, fontWeight: FontWeight.w500, ), ), ), Row( children: [ TextFormField( autocorrect: true, onChanged: (value) { print(value); }, ), CircleAvatar(), ], ), ], ), );

Error I got:

This was run on a usb attached device

` ══╡ EXCEPTION CAUGHT BY RENDERING LIBRARY ╞═════════════════════════════════════════════════════════
The following assertion was thrown during performLayout():
An InputDecorator, which is typically created by a TextField, cannot have an unbounded width.
This happens when the parent widget does not provide a finite width constraint. For example, if the
InputDecorator is contained by a Row, then its width must be constrained. An Expanded widget or a
SizedBox can be used to constrain the width of the InputDecorator or the TextField that contains it.
'package:flutter/src/material/input_decorator.dart':
Failed assertion: line 959 pos 7: 'layoutConstraints.maxWidth < double.infinity'

                Either the assertion indicates an error in the framework itself, or we should provide substantially
                more information in this error message to help you determine and fix the underlying cause.
                In either case, please report this assertion by filing a bug on GitHub:
                  https://github.com/flutter/flutter/issues/new?template=2_bug.md

                The relevant error-causing widget was:
                  TextFormField
                  file:///C:/Flutter/flutter project/todo_list/lib/widgets/BottombarContainer.dart:30:15

                When the exception was thrown, this was the stack:
                #2      _RenderDecoration._layout (package:flutter/src/material/input_decorator.dart:959:7)
                #3      _RenderDecoration.performLayout (package:flutter/src/material/input_decorator.dart:1310:44)
                #4      RenderObject.layout (package:flutter/src/rendering/object.dart:1779:7)
                #5      RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
                #6      RenderObject.layout (package:flutter/src/rendering/object.dart:1779:7)
                #7      RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
                #8      RenderObject.layout (package:flutter/src/rendering/object.dart:1779:7)
                #9      RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)`

` #10 RenderObject.layout (package:flutter/src/rendering/object.dart:1779:7)
#11 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#12 RenderObject.layout (package:flutter/src/rendering/object.dart:1779:7)
#13 ChildLayoutHelper.layoutChild (package:flutter/src/rendering/layout_helper.dart:54:11)
#14 RenderFlex._computeSizes (package:flutter/src/rendering/flex.dart:829:43)
#15 RenderFlex.performLayout (package:flutter/src/rendering/flex.dart:931:32)
#16 RenderObject.layout (package:flutter/src/rendering/object.dart:1779:7)
#17 ChildLayoutHelper.layoutChild (package:flutter/src/rendering/layout_helper.dart:54:11)
#18 RenderFlex._computeSizes (package:flutter/src/rendering/flex.dart:829:43)
#19 RenderFlex.performLayout (package:flutter/src/rendering/flex.dart:931:32)
#20 RenderObject.layout (package:flutter/src/rendering/object.dart:1779:7)
#21 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#22 RenderObject.layout (package:flutter/src/rendering/object.dart:1779:7)
#23 RenderConstrainedBox.performLayout (package:flutter/src/rendering/proxy_box.dart:277:14)
#24 RenderObject.layout (package:flutter/src/rendering/object.dart:1779:7)
#25 RenderPadding.performLayout (package:flutter/src/rendering/shifted_box.dart:233:12)
#26 RenderObject.layout (package:flutter/src/rendering/object.dart:1779:7)
#27 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#28 RenderObject.layout (package:flutter/src/rendering/object.dart:1779:7)
#29 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#30 _RenderCustomClip.performLayout (package:flutter/src/rendering/proxy_box.dart:1369:11)
#31 RenderObject.layout (package:flutter/src/rendering/object.dart:1779:7)
#32 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#33 RenderObject.layout (package:flutter/src/rendering/object.dart:1779:7)
#34 RenderCustomSingleChildLayoutBox.performLayout
(package:flutter/src/rendering/shifted_box.dart:1353:14)
#35 RenderObject.layout (package:flutter/src/rendering/object.dart:1779:7)
#36 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#37 _RenderCustomClip.performLayout (package:flutter/src/rendering/proxy_box.dart:1369:11)
#38 RenderObject.layout (package:flutter/src/rendering/object.dart:1779:7)
#39 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#40 RenderObject.layout (package:flutter/src/rendering/object.dart:1779:7)
#41 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#42 RenderObject.layout (package:flutter/src/rendering/object.dart:1779:7)
#43 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#44 RenderObject.layout (package:flutter/src/rendering/object.dart:1779:7)
#45 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#46 RenderObject.layout (package:flutter/src/rendering/object.dart:1779:7)
#47 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#48 RenderObject.layout (package:flutter/src/rendering/object.dart:1779:7)
#49 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#50 RenderOffstage.performLayout (package:flutter/src/rendering/proxy_box.dart:3370:13)
#51 RenderObject.layout (package:flutter/src/rendering/object.dart:1779:7)
#52 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#53 RenderObject.layout (package:flutter/src/rendering/object.dart:1779:7)
#54 _RenderTheatre.performLayout (package:flutter/src/widgets/overlay.dart:743:15)
#55 RenderObject._layoutWithoutResize (package:flutter/src/rendering/object.dart:1636:7)
#56 PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:881:18)
#57 RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:462:19)
#58 WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:876:13)
#59 RendererBinding._handlePersistentFrameCallback
(package:flutter/src/rendering/binding.dart:328:5)
#60 SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1144:15)
#61 SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1082:9)
#62 SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:998:5)
#66 _invoke (dart:ui/hooks.dart:163:10)
#67 PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:259:5)
#68 _drawFrame (dart:ui/hooks.dart:126:31)
(elided 5 frames from class _AssertionError and dart:async)

                The following RenderObject was being processed when the exception was fired: _RenderDecoration#6556d

relayoutBoundary=up13
NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE:
creator: _Decorator ← InputDecorator ← AnimatedBuilder ← Listener ← RawGestureDetector ←
TextSelectionGestureDetector ← Semantics ← AnimatedBuilder ← IgnorePointer ← _RawMouseRegion ←
MouseRegion ← TextField ← ⋯
parentData: (can use size)
constraints: BoxConstraints(unconstrained)
size: MISSING
This RenderObject had the following descendants (showing up to depth 5):
input: RenderRepaintBoundary#83afb NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
child: RenderMouseRegion#214da NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
child: RenderRepaintBoundary#9e741 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
child: RenderCustomPaint#c615c NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
child: RenderRepaintBoundary#c6978 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
helperError: RenderConstrainedBox#99366 NEEDS-LAYOUT NEEDS-PAINT
container: RenderCustomPaint#812d6 NEEDS-LAYOUT NEEDS-PAINT
════════════════════════════════════════════════════════════════════════════════════════════════════
[ 63 ms]
Another exception was thrown: RenderBox was not laid out: _RenderDecoration#6556d relayoutBoundary=up13
NEEDS-PAINT
NEEDS-COMPOSITING-BITS-UPDATE
[ 75 ms]
Another exception was thrown: RenderBox was not laid out: RenderPointerListener#edb39 relayoutBoundary=up12
NEEDS-PAINT
NEEDS-COMPOSITING-BITS-UPDATE
[ 71 ms]
Another exception was thrown: RenderBox was not laid out: RenderSemanticsAnnotations#67483 relayoutBoundary=up11
NEEDS-PAINT
NEEDS-COMPOSITING-BITS-UPDATE
[ 53 ms]
Another exception was thrown: RenderBox was not laid out: RenderIgnorePointer#76cc0 relayoutBoundary=up10
NEEDS-PAINT
NEEDS-COMPOSITING-BITS-UPDATE
[ 69 ms]
Another exception was thrown: RenderBox was not laid out: RenderMouseRegion#f4f61 relayoutBoundary=up9
NEEDS-PAINT
NEEDS-COMPOSITING-BITS-UPDATE
[ 83 ms]
Another exception was thrown: RenderBox was not laid out: RenderFlex#f888e relayoutBoundary=up8 NEEDS-PAINT
NEEDS-COMPOSITING-BITS-UPDATE
[ 61 ms]
Another exception was thrown: RenderBox was not laid out: RenderFlex#6e477 relayoutBoundary=up7 NEEDS-PAINT
NEEDS-COMPOSITING-BITS-UPDATE
[ 73 ms]
Another exception was thrown: RenderBox was not laid out: RenderDecoratedBox#4495b relayoutBoundary=up6
NEEDS-PAINT
NEEDS-COMPOSITING-BITS-UPDATE
[ 39 ms]
Another exception was thrown: RenderBox was not laid out: RenderConstrainedBox#1d447 relayoutBoundary=up5
NEEDS-PAINT
NEEDS-COMPOSITING-BITS-UPDATE
[ 56 ms]
Another exception was thrown: RenderBox was not laid out: RenderPadding#e62f0 relayoutBoundary=up4 NEEDS-PAINT
NEEDS-COMPOSITING-BITS-UPDATE
[ 37 ms]
Another exception was thrown: RenderBox was not laid out: _RenderInkFeatures#4f9d3 relayoutBoundary=up3
NEEDS-PAINT
NEEDS-COMPOSITING-BITS-UPDATE
[ 46 ms]
Another exception was thrown: RenderBox was not laid out: RenderPhysicalModel#e19d6 relayoutBoundary=up2
NEEDS-PAINT
NEEDS-COMPOSITING-BITS-UPDATE
[ 36 ms]
Another exception was thrown: RenderBox was not laid out: RenderPointerListener#33df5 relayoutBoundary=up1
NEEDS-PAINT
NEEDS-COMPOSITING-BITS-UPDATE
[ 72 ms]
Another exception was thrown: 'package:flutter/src/rendering/proxy_box.dart': Failed assertion: line 1870 pos 12:
'hasSize':
is not true.
[ 122 ms]
Another exception was thrown: RenderBox was not laid out: RenderPointerListener#33df5
relayoutBoundary=up1
[ 46 ms]
Another exception was thrown: 'package:flutter/src/rendering/proxy_box.dart': Failed assertion: line 1870 pos 12:
'hasSize':
is not true.`

@kenthinson
Copy link

It’s telling you the problem.
It’s not a bug with Flutter.
have you asked for help on StackOverflow?
I would give you the answer on that site. But am reluctant to do so here as this is for bugs not coding help.

The following assertion was thrown during performLayout(): An InputDecorator, which is typically created by a TextField, cannot have an unbounded width. This happens when the parent widget does not provide a finite width constraint. For example, if the InputDecorator is contained by a Row

@darshankawar darshankawar added the in triage Presently being triaged by the triage team label Jun 21, 2021
@darshankawar
Copy link
Member

@SamStrike0809
As mentioned above, the error itself tells you what you need to fix:

The following assertion was thrown during performLayout(): An InputDecorator, which is typically created by a TextField, cannot have an unbounded width. This happens when the parent widget does not provide a finite width constraint. For example, if the InputDecorator is contained by a Row, then its width must be constrained. An Expanded widget or a SizedBox can be used to constrain the width of the InputDecorator or the TextField that contains it.

I am going ahead and closing this as implementation issue and not framework. You may ask this on StackOverflow to get help on it.

@darshankawar darshankawar added r: invalid Issue is closed as not valid and removed in triage Presently being triaged by the triage team labels Jun 21, 2021
@github-actions
Copy link

This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new bug, including the output of flutter doctor -v and a minimal reproduction of the issue.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Jul 31, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
r: invalid Issue is closed as not valid
Projects
None yet
Development

No branches or pull requests

3 participants