Hello.
I'm using Dropdown Below library for a while and after upgrading my Flutter version to latest version, a problem happened. I was digging deep to find out where is the render object problem but after some time I gave up and decided to write a new screen from scratch in my application. At that point, I discovered a problem inside Dropdown Below.
This is the track of message from terminal.
`══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
The following assertion was thrown while applying parent data.:
Incorrect use of ParentDataWidget.
The ParentDataWidget Expanded(flex: 1) wants to apply ParentData of type FlexParentData to a
RenderObject, which has been set up to accept ParentData of incompatible type ParentData.
Usually, this means that the Expanded widget has the wrong ancestor RenderObjectWidget. Typically,
Expanded widgets are placed directly inside Flex widgets.
The offending Expanded is currently placed inside a ConstrainedBox widget.
The ownership chain for the RenderObject that received the incompatible parent data was:
IndexedStack ← Expanded ← ConstrainedBox ← Container ← DefaultTextStyle ← Stack ← Listener ←
_GestureSemantics ← RawGestureDetector ← GestureDetector ← ⋯
When the exception was thrown, this was the stack:
#0 RenderObjectElement._updateParentData. (package:flutter/src/widgets/framework.dart:5723:11)
#1 RenderObjectElement._updateParentData (package:flutter/src/widgets/framework.dart:5739:6)
#2 RenderObjectElement.attachRenderObject (package:flutter/src/widgets/framework.dart:5761:7)
#3 RenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5440:5)
#4 MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6228:11)
... Normal element mounting (22 frames)
#26 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3611:14)
#27 MultiChildRenderObjectElement.inflateWidget (package:flutter/src/widgets/framework.dart:6221:36)
#28 MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6232:32)
... Normal element mounting (32 frames)
#60 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3611:14)
#61 MultiChildRenderObjectElement.inflateWidget (package:flutter/src/widgets/framework.dart:6221:36)
#62 MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6232:32)
... Normal element mounting (103 frames)
#165 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3611:14)
#166 MultiChildRenderObjectElement.inflateWidget (package:flutter/src/widgets/framework.dart:6221:36)
#167 MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6232:32)
... Normal element mounting (73 frames)
#240 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3611:14)
#241 MultiChildRenderObjectElement.inflateWidget (package:flutter/src/widgets/framework.dart:6221:36)
#242 Element.updateChild (package:flutter/src/widgets/framework.dart:3363:18)
#243 RenderObjectElement.updateChildren (package:flutter/src/widgets/framework.dart:5654:32)
#244 MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6243:17)
#245 Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
#246 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6090:14)
#247 Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
#248 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4599:16)
#249 Element.rebuild (package:flutter/src/widgets/framework.dart:4267:5)
#250 StatelessElement.update (package:flutter/src/widgets/framework.dart:4655:5)
#251 Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
#252 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4599:16)
#253 Element.rebuild (package:flutter/src/widgets/framework.dart:4267:5)
#254 StatelessElement.update (package:flutter/src/widgets/framework.dart:4655:5)
#255 Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
#256 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4599:16)
#257 Element.rebuild (package:flutter/src/widgets/framework.dart:4267:5)
#258 ProxyElement.update (package:flutter/src/widgets/framework.dart:4922:5)
#259 Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
#260 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4599:16)
#261 Element.rebuild (package:flutter/src/widgets/framework.dart:4267:5)
#262 ProxyElement.update (package:flutter/src/widgets/framework.dart:4922:5)
#263 Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
#264 RenderObjectElement.updateChildren (package:flutter/src/widgets/framework.dart:5596:32)
#265 MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6243:17)
#266 Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
#267 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4599:16)
#268 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4746:11)
#269 Element.rebuild (package:flutter/src/widgets/framework.dart:4267:5)
#270 StatefulElement.update (package:flutter/src/widgets/framework.dart:4778:5)
#271 Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
#272 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4599:16)
#273 Element.rebuild (package:flutter/src/widgets/framework.dart:4267:5)
#274 ProxyElement.update (package:flutter/src/widgets/framework.dart:4922:5)
#275 Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
#276 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4599:16)
#277 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4746:11)
#278 Element.rebuild (package:flutter/src/widgets/framework.dart:4267:5)
#279 StatefulElement.update (package:flutter/src/widgets/framework.dart:4778:5)
#280 Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
#281 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6090:14)
#282 Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
#283 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4599:16)
#284 Element.rebuild (package:flutter/src/widgets/framework.dart:4267:5)
#285 StatelessElement.update (package:flutter/src/widgets/framework.dart:4655:5)
#286 Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
#287 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6090:14)
#288 Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
#289 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4599:16)
#290 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4746:11)
#291 Element.rebuild (package:flutter/src/widgets/framework.dart:4267:5)
#292 StatefulElement.update (package:flutter/src/widgets/framework.dart:4778:5)
#293 Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
#294 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4599:16)
#295 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4746:11)
#296 Element.rebuild (package:flutter/src/widgets/framework.dart:4267:5)
#297 StatefulElement.update (package:flutter/src/widgets/framework.dart:4778:5)
#298 Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
#299 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4599:16)
#300 Element.rebuild (package:flutter/src/widgets/framework.dart:4267:5)
#301 ProxyElement.update (package:flutter/src/widgets/framework.dart:4922:5)
#302 Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
#303 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4599:16)
#304 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4746:11)
#305 Element.rebuild (package:flutter/src/widgets/framework.dart:4267:5)
#306 StatefulElement.update (package:flutter/src/widgets/framework.dart:4778:5)
#307 Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
#308 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4599:16)
#309 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4746:11)
#310 Element.rebuild (package:flutter/src/widgets/framework.dart:4267:5)
#311 BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2582:33)
#312 WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:875:21)
#313 RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:328:5)
#314 SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1144:15)
#315 SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1082:9)
#316 SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:998:5)
#320 _invoke (dart:ui/hooks.dart:163:10)
#321 PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:259:5)
#322 _drawFrame (dart:ui/hooks.dart:126:31)
(elided 3 frames from dart:async)`
This is the version of flutter in my computer.
[✓] Flutter (Channel stable, 2.2.2, on macOS 11.4 20F71 darwin-x64, locale en-GB) • Flutter version 2.2.2 at /Users/user/development/flutter • Framework revision d79295af24 (3 weeks ago), 2021-06-11 08:56:01 -0700 • Engine revision 91c9fc8fe0 • Dart version 2.13.3
This is the code piece I was using perfectly before upgrading Flutter version:
`
Padding(
padding: const EdgeInsets.only(right: 16.0),
child: Row(
mainAxisAlignment: MainAxisAlignment.end,
children: [
DropdownBelow(
itemWidth: 100,
itemTextstyle: TextStyle(
fontSize: 14,
fontWeight: FontWeight.w400,
color: Colors.black),
boxTextstyle: TextStyle(
fontSize: 14,
fontWeight: FontWeight.w400,
color: Color(0XFFbbbbbb)),
boxPadding: const EdgeInsets.fromLTRB(13, 12, 0, 12),
boxWidth: 100,
boxHeight: 45,
hint: Text('Filter'),
value: _selectedTest,
items: _dropdownTestItems,
onChanged: onChangeDropdownTests,
),
],
),
),
`
And I find out that problem may come from dropdown_below.dart. Please check out line 590. The code piece fits to the cause of error message.
Line 590 as a screenshot below
I hope it helps you to make your package better. If that problem is related to my code, I'm sorry that I have disturbed you.