-
Notifications
You must be signed in to change notification settings - Fork 29.7k
Description
Hi thanks for the Flutter framework! However I am seeing this annoying bug in production environment :( Below are my analysis of bug cause, and I will PR soon.
Analysis of cause
Remark: I will try to explain it as clear as possible, so the explanation order is quite different from how I actually find this annoying bug.
Firstly, the reproduction ensures that the following stack trace is triggered (marked by <-----):
void didUpdateWidget(MyEditableText oldWidget) {
...
else if (oldWidget.readOnly && _hasFocus) {
_openInputConnection(); // <------
... void _openInputConnection() {
...
_updateSizeAndTransform(); // <------
... void _updateSizeAndTransform() {
if (_hasInputConnection) {
final Size size = renderEditable.size;
final Matrix4 transform = renderEditable.getTransformTo(null); // <------
...or, a screenshot if you like:
Now comes the problem: Theoretically, we are calling getTransformTo inside a didUpdateWidget. In other words, we are fetching information that is available only in/after layout-phase at the build-phase.
In normal cases, this may not be a problem, since we are inside didUpdateWidget, so we should already have done one build and thus there should be some (though possibly outdated) layout information.
However, consider the GlobalKey-triggered reparenting scenario. In the minimal reproducible sample code, as you can see, I am using a GlobalKey, and the didUpdateWidget is triggered when the TextField subtree is moved into a brand new location, i.e. as a child of the brand new FractionalTranslation.
Now comes the problem. The FractionalTranslation is just created, and thus it has not gone through the layout phase at all. Thus, when we are calling getTransformTo(), we will go through ancestors, including the RenderFractionalTranslation, and asks it to provide a transformation (applyPaintTransform). How can it provide one if it has not been laid out? Then the error is thrown.
Generalization of the bug: After understanding the cause, we can see that, not only FractionalTranslation, but any RenderObject that requires layout-phase information at its applyPaintTransform will cause the trouble.
P.S. This is just a minimal reproducible sample, and in production environment surely my widget tree is not this weird and artificial.
Is there an existing issue for this?
- I have searched the existing issues
- I have read the guide to filing a bug
Steps to reproduce
- Run app
- tap the text field (it is readOnly=true, so you will see it is highlighted, but keyboard not opened)
- tap the "toggle" button
- see error
Expected results
no error
Actual results
see error
Code sample
Code sample
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatefulWidget {
const MyApp({super.key});
@override
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
final textFieldKey = GlobalKey();
var enable = false;
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(),
body: Column(
children: [
TextButton(
onPressed: () {
print('tap toggle');
setState(() => enable = !enable);
},
child: Text('toggle'),
),
enable
? FractionalTranslation(
translation: Offset(0.1, 0.1),
child: TextField(key: textFieldKey),
)
: TextField(key: textFieldKey, readOnly: true),
],
),
),
);
}
}
Screenshots or Video
Screenshots / Video demonstration
[Upload media here]
Logs
Logs
======== Exception caught by widgets library =======================================================
The following assertion was thrown building UnmanagedRestorationScope:
RenderBox was not laid out: RenderFractionalTranslation#7ed52 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2009 pos 12: 'hasSize'
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:
TextField-[GlobalKey#a1af1] TextField:file:///Users/tom/RefCode/bug/lib/main.dart:33:28
When the exception was thrown, this was the stack:
#2 RenderBox.size (package:flutter/src/rendering/box.dart:2009:12)
#3 RenderFractionalTranslation.applyPaintTransform (package:flutter/src/rendering/proxy_box.dart:3045:24)
#4 RenderObject.getTransformTo (package:flutter/src/rendering/object.dart:2968:24)
#5 EditableTextState._updateSizeAndTransform (package:flutter/src/widgets/editable_text.dart:3530:48)
#6 EditableTextState._openInputConnection (package:flutter/src/widgets/editable_text.dart:2922:7)
#7 EditableTextState.didUpdateWidget (package:flutter/src/widgets/editable_text.dart:2461:7)
#8 StatefulElement.update (package:flutter/src/widgets/framework.dart:5142:55)
#9 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#10 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#11 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#12 ProxyElement.update (package:flutter/src/widgets/framework.dart:5301:5)
#13 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#14 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6384:14)
#15 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#16 SlottedRenderObjectElement._updateChildren (package:flutter/src/widgets/slotted_render_object_widget.dart:270:33)
#17 SlottedRenderObjectElement.update (package:flutter/src/widgets/slotted_render_object_widget.dart:231:5)
#18 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#19 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#20 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
#21 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#22 StatefulElement.update (package:flutter/src/widgets/framework.dart:5156:5)
#23 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#24 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#25 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
#26 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#27 StatefulElement.update (package:flutter/src/widgets/framework.dart:5156:5)
#28 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#29 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6384:14)
#30 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#31 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#32 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
#33 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#34 StatefulElement.update (package:flutter/src/widgets/framework.dart:5156:5)
#35 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#36 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#37 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
#38 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#39 StatefulElement.update (package:flutter/src/widgets/framework.dart:5156:5)
#40 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#41 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6384:14)
#42 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#43 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#44 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
#45 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#46 StatefulElement.update (package:flutter/src/widgets/framework.dart:5156:5)
#47 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#48 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6384:14)
#49 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#50 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6384:14)
#51 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#52 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6384:14)
#53 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#54 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#55 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
#56 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#57 StatefulElement.update (package:flutter/src/widgets/framework.dart:5156:5)
#58 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
... Normal element mounting (4 frames)
#62 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3953:16)
#63 MultiChildRenderObjectElement.inflateWidget (package:flutter/src/widgets/framework.dart:6512:36)
#64 Element.updateChild (package:flutter/src/widgets/framework.dart:3682:18)
#65 RenderObjectElement.updateChildren (package:flutter/src/widgets/framework.dart:6041:32)
#66 MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6537:17)
#67 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#68 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#69 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#70 StatelessElement.update (package:flutter/src/widgets/framework.dart:5044:5)
#71 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#72 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#73 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#74 StatelessElement.update (package:flutter/src/widgets/framework.dart:5044:5)
#75 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#76 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#77 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#78 ProxyElement.update (package:flutter/src/widgets/framework.dart:5301:5)
#79 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#80 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#81 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#82 ProxyElement.update (package:flutter/src/widgets/framework.dart:5301:5)
#83 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#84 RenderObjectElement.updateChildren (package:flutter/src/widgets/framework.dart:5981:32)
#85 MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6537:17)
#86 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#87 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#88 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#89 ProxyElement.update (package:flutter/src/widgets/framework.dart:5301:5)
#90 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#91 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#92 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
#93 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#94 StatefulElement.update (package:flutter/src/widgets/framework.dart:5156:5)
#95 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#96 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#97 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
#98 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#99 StatefulElement.update (package:flutter/src/widgets/framework.dart:5156:5)
#100 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#101 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#102 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#103 ProxyElement.update (package:flutter/src/widgets/framework.dart:5301:5)
#104 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#105 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#106 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
#107 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#108 StatefulElement.update (package:flutter/src/widgets/framework.dart:5156:5)
#109 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#110 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6384:14)
#111 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#112 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#113 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#114 ProxyElement.update (package:flutter/src/widgets/framework.dart:5301:5)
#115 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#116 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6384:14)
#117 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#118 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#119 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
#120 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#121 StatefulElement.update (package:flutter/src/widgets/framework.dart:5156:5)
#122 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#123 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#124 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
#125 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#126 StatefulElement.update (package:flutter/src/widgets/framework.dart:5156:5)
#127 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#128 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#129 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#130 ProxyElement.update (package:flutter/src/widgets/framework.dart:5301:5)
#131 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#132 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#133 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#134 ProxyElement.update (package:flutter/src/widgets/framework.dart:5301:5)
#135 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#136 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#137 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#138 ProxyElement.update (package:flutter/src/widgets/framework.dart:5301:5)
#139 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#140 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#141 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
#142 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#143 StatefulElement.update (package:flutter/src/widgets/framework.dart:5156:5)
#144 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#145 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#146 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#147 ProxyElement.update (package:flutter/src/widgets/framework.dart:5301:5)
#148 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#149 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#150 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
#151 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#152 StatefulElement.update (package:flutter/src/widgets/framework.dart:5156:5)
#153 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#154 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6384:14)
#155 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#156 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#157 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#158 StatelessElement.update (package:flutter/src/widgets/framework.dart:5044:5)
#159 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#160 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6384:14)
#161 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#162 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6384:14)
#163 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#164 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#165 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
#166 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#167 StatefulElement.update (package:flutter/src/widgets/framework.dart:5156:5)
#168 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#169 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6384:14)
#170 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#171 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#172 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
#173 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#174 StatefulElement.update (package:flutter/src/widgets/framework.dart:5156:5)
#175 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#176 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6384:14)
#177 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#178 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#179 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
#180 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#181 StatefulElement.update (package:flutter/src/widgets/framework.dart:5156:5)
#182 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#183 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#184 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
#185 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#186 StatefulElement.update (package:flutter/src/widgets/framework.dart:5156:5)
#187 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#188 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6384:14)
#189 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#190 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#191 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
#192 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#193 StatefulElement.update (package:flutter/src/widgets/framework.dart:5156:5)
#194 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#195 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6384:14)
#196 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#197 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#198 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
#199 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#200 StatefulElement.update (package:flutter/src/widgets/framework.dart:5156:5)
#201 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#202 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#203 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
#204 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#205 StatefulElement.update (package:flutter/src/widgets/framework.dart:5156:5)
#206 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#207 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#208 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#209 StatelessElement.update (package:flutter/src/widgets/framework.dart:5044:5)
#210 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#211 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#212 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
#213 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#214 StatefulElement.update (package:flutter/src/widgets/framework.dart:5156:5)
#215 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#216 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6384:14)
#217 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#218 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#219 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#220 ProxyElement.update (package:flutter/src/widgets/framework.dart:5301:5)
#221 _InheritedNotifierElement.update (package:flutter/src/widgets/inherited_notifier.dart:107:11)
#222 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#223 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6384:14)
#224 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#225 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#226 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
#227 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#228 StatefulElement.update (package:flutter/src/widgets/framework.dart:5156:5)
#229 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#230 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#231 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#232 ProxyElement.update (package:flutter/src/widgets/framework.dart:5301:5)
#233 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#234 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#235 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#236 ProxyElement.update (package:flutter/src/widgets/framework.dart:5301:5)
#237 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#238 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#239 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
#240 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#241 StatefulElement.update (package:flutter/src/widgets/framework.dart:5156:5)
#242 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#243 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#244 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#245 StatelessElement.update (package:flutter/src/widgets/framework.dart:5044:5)
#246 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#247 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#248 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#249 StatelessElement.update (package:flutter/src/widgets/framework.dart:5044:5)
#250 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#251 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6384:14)
#252 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#253 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#254 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#255 ProxyElement.update (package:flutter/src/widgets/framework.dart:5301:5)
#256 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#257 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#258 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#259 ProxyElement.update (package:flutter/src/widgets/framework.dart:5301:5)
#260 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#261 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#262 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
#263 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#264 StatefulElement.update (package:flutter/src/widgets/framework.dart:5156:5)
#265 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#266 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#267 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
#268 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#269 StatefulElement.update (package:flutter/src/widgets/framework.dart:5156:5)
#270 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#271 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#272 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
#273 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#274 BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2743:19)
#275 WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:863:21)
#276 RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:381:5)
#277 SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1289:15)
#278 SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1218:9)
#279 SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:1076:5)
#280 _invoke (dart:ui/hooks.dart:145:13)
#281 PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:338:5)
#282 _drawFrame (dart:ui/hooks.dart:112:31)
(elided 2 frames from class _AssertionError)
====================================================================================================Flutter Doctor output
Doctor output
[Paste your output here]