flutter_typeahead
flutter_typeahead copied to clipboard
Throws Unhandled Exception when direction is AxisDirection.up
If I ignore the exception, everything works as expected, not sure why this occurs.
This is happened when I have 30+ items, and scroll the suggestion box with mouse wheel or scrollbar. It will emit the exception per scroll trigger, so the below looks long but just one same exception.
Launching lib\main.dart on Windows in debug mode...
Connecting to VM Service at ws://127.0.0.1:54332/5CKTTa-wGTk=/ws
[ERROR:flutter/lib/ui/ui_dart_state.cc(209)] Unhandled Exception: 'package:flutter/src/rendering/proxy_box.dart': Failed assertion: line 2766 pos 12: '!debugNeedsLayout': is not true.
#0 _AssertionError._doThrowNew (dart:core-patch/errors_patch.dart:47:61)
#1 _AssertionError._throwNew (dart:core-patch/errors_patch.dart:36:5)
#2 RenderFractionalTranslation.hitTestChildren
#3 RenderFractionalTranslation.hitTest
#4 RenderProxyBoxMixin.hitTestChildren
#5 RenderFollowerLayer.hitTestChildren.<anonymous closure>
#6 BoxHitTestResult.addWithRawTransform
#7 BoxHitTestResult.addWithPaintTransform
#8 RenderFollowerLayer.hitTestChildren
#9 RenderFollowerLayer.hitTest
#10 _RenderTheatre.hitTestChildren.<anonymous closure>
#11 BoxHitTestResult.addWithPaintOffset
#12 _RenderTheatre.hitTestChildren
#13 RenderBox.hitTest
#14 RenderProxyBoxMixin.hitTestChildren
#15 RenderBox.hitTest
#16 RenderProxyBoxMixin.hitTestChildren
#17 RenderBox.hitTest
#18 RenderAbsorbPointer.hitTest
#19 RenderProxyBoxMixin.hitTestChildren
#20 RenderProxyBoxWithHitTestBehavior.hitTest
#21 RenderProxyBoxMixin.hitTestChildren
#22 RenderCustomPaint.hitTestChildren
#23 RenderBox.hitTest
#24 RenderProxyBoxMixin.hitTestChildren
#25 RenderBox.hitTest
#26 RenderProxyBoxMixin.hitTestChildren
#27 RenderBox.hitTest
#28 RenderProxyBoxMixin.hitTestChildren
#29 RenderBox.hitTest
#30 RenderProxyBoxMixin.hitTestChildren
#31 RenderBox.hitTest
#32 RenderView.hitTest
#33 RendererBinding.hitTest
#34 GestureBinding._handlePointerEventImmediately
#35 GestureBinding.handlePointerEvent
#36 GestureBinding._flushPointerEventQueue
#37 GestureBinding._handlePointerDataPacket
#38 _rootRunUnary (dart:async/zone.dart:1444:13)
#39 _CustomZone.runUnary (dart:async/zone.dart:1335:19)
#40 _CustomZone.runUnaryGuarded (dart:async/zone.dart:1244:7)
#41 _invoke1 (dart:ui/hooks.dart:169:10)
#42 PlatformDispatcher._dispatchPointerDataPacket (dart:ui/platform_dispatcher.dart:293:7)
#43 _dispatchPointerDataPacket (dart:ui/hooks.dart:88:31)
[ERROR:flutter/lib/ui/ui_dart_state.cc(209)] Unhandled Exception: 'package:flutter/src/rendering/proxy_box.dart': Failed assertion: line 2766 pos 12: '!debugNeedsLayout': is not true.
#0 _AssertionError._doThrowNew (dart:core-patch/errors_patch.dart:47:61)
#1 _AssertionError._throwNew (dart:core-patch/errors_patch.dart:36:5)
#2 RenderFractionalTranslation.hitTestChildren
#3 RenderFractionalTranslation.hitTest
#4 RenderProxyBoxMixin.hitTestChildren
#5 RenderFollowerLayer.hitTestChildren.<anonymous closure>
#6 BoxHitTestResult.addWithRawTransform
#7 BoxHitTestResult.addWithPaintTransform
#8 RenderFollowerLayer.hitTestChildren
#9 RenderFollowerLayer.hitTest
#10 _RenderTheatre.hitTestChildren.<anonymous closure>
#11 BoxHitTestResult.addWithPaintOffset
#12 _RenderTheatre.hitTestChildren
#13 RenderBox.hitTest
#14 RenderProxyBoxMixin.hitTestChildren
#15 RenderBox.hitTest
#16 RenderProxyBoxMixin.hitTestChildren
#17 RenderBox.hitTest
#18 RenderAbsorbPointer.hitTest
#19 RenderProxyBoxMixin.hitTestChildren
#20 RenderProxyBoxWithHitTestBehavior.hitTest
#21 RenderProxyBoxMixin.hitTestChildren
#22 RenderCustomPaint.hitTestChildren
#23 RenderBox.hitTest
#24 RenderProxyBoxMixin.hitTestChildren
#25 RenderBox.hitTest
#26 RenderProxyBoxMixin.hitTestChildren
#27 RenderBox.hitTest
#28 RenderProxyBoxMixin.hitTestChildren
#29 RenderBox.hitTest
#30 RenderProxyBoxMixin.hitTestChildren
#31 RenderBox.hitTest
#32 RenderView.hitTest
#33 RendererBinding.hitTest
#34 GestureBinding._handlePointerEventImmediately
#35 GestureBinding.handlePointerEvent
#36 GestureBinding._flushPointerEventQueue
#37 GestureBinding._handlePointerDataPacket
#38 _rootRunUnary (dart:async/zone.dart:1444:13)
#39 _CustomZone.runUnary (dart:async/zone.dart:1335:19)
#40 _CustomZone.runUnaryGuarded (dart:async/zone.dart:1244:7)
#41 _invoke1 (dart:ui/hooks.dart:169:10)
#42 PlatformDispatcher._dispatchPointerDataPacket (dart:ui/platform_dispatcher.dart:293:7)
#43 _dispatchPointerDataPacket (dart:ui/hooks.dart:88:31)
[ERROR:flutter/lib/ui/ui_dart_state.cc(209)] Unhandled Exception: 'package:flutter/src/rendering/proxy_box.dart': Failed assertion: line 2766 pos 12: '!debugNeedsLayout': is not true.
#0 _AssertionError._doThrowNew (dart:core-patch/errors_patch.dart:47:61)
#1 _AssertionError._throwNew (dart:core-patch/errors_patch.dart:36:5)
#2 RenderFractionalTranslation.hitTestChildren
#3 RenderFractionalTranslation.hitTest
#4 RenderProxyBoxMixin.hitTestChildren
#5 RenderFollowerLayer.hitTestChildren.<anonymous closure>
#6 BoxHitTestResult.addWithRawTransform
#7 BoxHitTestResult.addWithPaintTransform
#8 RenderFollowerLayer.hitTestChildren
#9 RenderFollowerLayer.hitTest
#10 _RenderTheatre.hitTestChildren.<anonymous closure>
#11 BoxHitTestResult.addWithPaintOffset
#12 _RenderTheatre.hitTestChildren
#13 RenderBox.hitTest
#14 RenderProxyBoxMixin.hitTestChildren
#15 RenderBox.hitTest
#16 RenderProxyBoxMixin.hitTestChildren
#17 RenderBox.hitTest
#18 RenderAbsorbPointer.hitTest
#19 RenderProxyBoxMixin.hitTestChildren
#20 RenderProxyBoxWithHitTestBehavior.hitTest
#21 RenderProxyBoxMixin.hitTestChildren
#22 RenderCustomPaint.hitTestChildren
#23 RenderBox.hitTest
#24 RenderProxyBoxMixin.hitTestChildren
#25 RenderBox.hitTest
#26 RenderProxyBoxMixin.hitTestChildren
#27 RenderBox.hitTest
#28 RenderProxyBoxMixin.hitTestChildren
#29 RenderBox.hitTest
#30 RenderProxyBoxMixin.hitTestChildren
#31 RenderBox.hitTest
#32 RenderView.hitTest
#33 RendererBinding.hitTest
#34 GestureBinding._handlePointerEventImmediately
#35 GestureBinding.handlePointerEvent
#36 GestureBinding._flushPointerEventQueue
#37 GestureBinding._handlePointerDataPacket
#38 _rootRunUnary (dart:async/zone.dart:1444:13)
#39 _CustomZone.runUnary (dart:async/zone.dart:1335:19)
#40 _CustomZone.runUnaryGuarded (dart:async/zone.dart:1244:7)
#41 _invoke1 (dart:ui/hooks.dart:169:10)
#42 PlatformDispatcher._dispatchPointerDataPacket (dart:ui/platform_dispatcher.dart:293:7)
#43 _dispatchPointerDataPacket (dart:ui/hooks.dart:88:31)
[ERROR:flutter/lib/ui/ui_dart_state.cc(209)] Unhandled Exception: 'package:flutter/src/rendering/proxy_box.dart': Failed assertion: line 2766 pos 12: '!debugNeedsLayout': is not true.
#0 _AssertionError._doThrowNew (dart:core-patch/errors_patch.dart:47:61)
#1 _AssertionError._throwNew (dart:core-patch/errors_patch.dart:36:5)
#2 RenderFractionalTranslation.hitTestChildren
#3 RenderFractionalTranslation.hitTest
#4 RenderProxyBoxMixin.hitTestChildren
#5 RenderFollowerLayer.hitTestChildren.<anonymous closure>
#6 BoxHitTestResult.addWithRawTransform
#7 BoxHitTestResult.addWithPaintTransform
#8 RenderFollowerLayer.hitTestChildren
#9 RenderFollowerLayer.hitTest
#10 _RenderTheatre.hitTestChildren.<anonymous closure>
#11 BoxHitTestResult.addWithPaintOffset
#12 _RenderTheatre.hitTestChildren
#13 RenderBox.hitTest
#14 RenderProxyBoxMixin.hitTestChildren
#15 RenderBox.hitTest
#16 RenderProxyBoxMixin.hitTestChildren
#17 RenderBox.hitTest
#18 RenderAbsorbPointer.hitTest
#19 RenderProxyBoxMixin.hitTestChildren
#20 RenderProxyBoxWithHitTestBehavior.hitTest
#21 RenderProxyBoxMixin.hitTestChildren
#22 RenderCustomPaint.hitTestChildren
#23 RenderBox.hitTest
#24 RenderProxyBoxMixin.hitTestChildren
#25 RenderBox.hitTest
#26 RenderProxyBoxMixin.hitTestChildren
#27 RenderBox.hitTest
#28 RenderProxyBoxMixin.hitTestChildren
#29 RenderBox.hitTest
#30 RenderProxyBoxMixin.hitTestChildren
#31 RenderBox.hitTest
#32 RenderView.hitTest
#33 RendererBinding.hitTest
#34 GestureBinding._handlePointerEventImmediately
#35 GestureBinding.handlePointerEvent
#36 GestureBinding._flushPointerEventQueue
#37 GestureBinding._handlePointerDataPacket
#38 _rootRunUnary (dart:async/zone.dart:1444:13)
#39 _CustomZone.runUnary (dart:async/zone.dart:1335:19)
#40 _CustomZone.runUnaryGuarded (dart:async/zone.dart:1244:7)
#41 _invoke1 (dart:ui/hooks.dart:169:10)
#42 PlatformDispatcher._dispatchPointerDataPacket (dart:ui/platform_dispatcher.dart:293:7)
#43 _dispatchPointerDataPacket (dart:ui/hooks.dart:88:31)
[ERROR:flutter/lib/ui/ui_dart_state.cc(209)] Unhandled Exception: 'package:flutter/src/rendering/proxy_box.dart': Failed assertion: line 2766 pos 12: '!debugNeedsLayout': is not true.
#0 _AssertionError._doThrowNew (dart:core-patch/errors_patch.dart:47:61)
#1 _AssertionError._throwNew (dart:core-patch/errors_patch.dart:36:5)
#2 RenderFractionalTranslation.hitTestChildren
#3 RenderFractionalTranslation.hitTest
#4 RenderProxyBoxMixin.hitTestChildren
#5 RenderFollowerLayer.hitTestChildren.<anonymous closure>
#6 BoxHitTestResult.addWithRawTransform
#7 BoxHitTestResult.addWithPaintTransform
#8 RenderFollowerLayer.hitTestChildren
#9 RenderFollowerLayer.hitTest
#10 _RenderTheatre.hitTestChildren.<anonymous closure>
#11 BoxHitTestResult.addWithPaintOffset
#12 _RenderTheatre.hitTestChildren
#13 RenderBox.hitTest
#14 RenderProxyBoxMixin.hitTestChildren
#15 RenderBox.hitTest
#16 RenderProxyBoxMixin.hitTestChildren
#17 RenderBox.hitTest
#18 RenderAbsorbPointer.hitTest
#19 RenderProxyBoxMixin.hitTestChildren
#20 RenderProxyBoxWithHitTestBehavior.hitTest
#21 RenderProxyBoxMixin.hitTestChildren
#22 RenderCustomPaint.hitTestChildren
#23 RenderBox.hitTest
#24 RenderProxyBoxMixin.hitTestChildren
#25 RenderBox.hitTest
#26 RenderProxyBoxMixin.hitTestChildren
#27 RenderBox.hitTest
#28 RenderProxyBoxMixin.hitTestChildren
#29 RenderBox.hitTest
#30 RenderProxyBoxMixin.hitTestChildren
#31 RenderBox.hitTest
#32 RenderView.hitTest
#33 RendererBinding.hitTest
#34 GestureBinding._handlePointerEventImmediately
#35 GestureBinding.handlePointerEvent
#36 GestureBinding._flushPointerEventQueue
#37 GestureBinding._handlePointerDataPacket
#38 _rootRunUnary (dart:async/zone.dart:1444:13)
#39 _CustomZone.runUnary (dart:async/zone.dart:1335:19)
#40 _CustomZone.runUnaryGuarded (dart:async/zone.dart:1244:7)
#41 _invoke1 (dart:ui/hooks.dart:169:10)
#42 PlatformDispatcher._dispatchPointerDataPacket (dart:ui/platform_dispatcher.dart:293:7)
#43 _dispatchPointerDataPacket (dart:ui/hooks.dart:88:31)
[ERROR:flutter/lib/ui/ui_dart_state.cc(209)] Unhandled Exception: 'package:flutter/src/rendering/proxy_box.dart': Failed assertion: line 2766 pos 12: '!debugNeedsLayout': is not true.
#0 _AssertionError._doThrowNew (dart:core-patch/errors_patch.dart:47:61)
#1 _AssertionError._throwNew (dart:core-patch/errors_patch.dart:36:5)
#2 RenderFractionalTranslation.hitTestChildren
#3 RenderFractionalTranslation.hitTest
#4 RenderProxyBoxMixin.hitTestChildren
#5 RenderFollowerLayer.hitTestChildren.<anonymous closure>
#6 BoxHitTestResult.addWithRawTransform
#7 BoxHitTestResult.addWithPaintTransform
#8 RenderFollowerLayer.hitTestChildren
#9 RenderFollowerLayer.hitTest
#10 _RenderTheatre.hitTestChildren.<anonymous closure>
#11 BoxHitTestResult.addWithPaintOffset
#12 _RenderTheatre.hitTestChildren
#13 RenderBox.hitTest
#14 RenderProxyBoxMixin.hitTestChildren
#15 RenderBox.hitTest
#16 RenderProxyBoxMixin.hitTestChildren
#17 RenderBox.hitTest
#18 RenderAbsorbPointer.hitTest
#19 RenderProxyBoxMixin.hitTestChildren
#20 RenderProxyBoxWithHitTestBehavior.hitTest
#21 RenderProxyBoxMixin.hitTestChildren
#22 RenderCustomPaint.hitTestChildren
#23 RenderBox.hitTest
#24 RenderProxyBoxMixin.hitTestChildren
#25 RenderBox.hitTest
#26 RenderProxyBoxMixin.hitTestChildren
#27 RenderBox.hitTest
#28 RenderProxyBoxMixin.hitTestChildren
#29 RenderBox.hitTest
#30 RenderProxyBoxMixin.hitTestChildren
#31 RenderBox.hitTest
#32 RenderView.hitTest
#33 RendererBinding.hitTest
#34 GestureBinding._handlePointerEventImmediately
#35 GestureBinding.handlePointerEvent
#36 GestureBinding._flushPointerEventQueue
#37 GestureBinding._handlePointerDataPacket
#38 _rootRunUnary (dart:async/zone.dart:1444:13)
#39 _CustomZone.runUnary (dart:async/zone.dart:1335:19)
#40 _CustomZone.runUnaryGuarded (dart:async/zone.dart:1244:7)
#41 _invoke1 (dart:ui/hooks.dart:169:10)
#42 PlatformDispatcher._dispatchPointerDataPacket (dart:ui/platform_dispatcher.dart:293:7)
#43 _dispatchPointerDataPacket (dart:ui/hooks.dart:88:31)
[ERROR:flutter/lib/ui/ui_dart_state.cc(209)] Unhandled Exception: 'package:flutter/src/rendering/proxy_box.dart': Failed assertion: line 2766 pos 12: '!debugNeedsLayout': is not true.
#0 _AssertionError._doThrowNew (dart:core-patch/errors_patch.dart:47:61)
#1 _AssertionError._throwNew (dart:core-patch/errors_patch.dart:36:5)
#2 RenderFractionalTranslation.hitTestChildren
#3 RenderFractionalTranslation.hitTest
#4 RenderProxyBoxMixin.hitTestChildren
#5 RenderFollowerLayer.hitTestChildren.<anonymous closure>
#6 BoxHitTestResult.addWithRawTransform
#7 BoxHitTestResult.addWithPaintTransform
#8 RenderFollowerLayer.hitTestChildren
#9 RenderFollowerLayer.hitTest
#10 _RenderTheatre.hitTestChildren.<anonymous closure>
#11 BoxHitTestResult.addWithPaintOffset
#12 _RenderTheatre.hitTestChildren
#13 RenderBox.hitTest
#14 RenderProxyBoxMixin.hitTestChildren
#15 RenderBox.hitTest
#16 RenderProxyBoxMixin.hitTestChildren
#17 RenderBox.hitTest
#18 RenderAbsorbPointer.hitTest
#19 RenderProxyBoxMixin.hitTestChildren
#20 RenderProxyBoxWithHitTestBehavior.hitTest
#21 RenderProxyBoxMixin.hitTestChildren
#22 RenderCustomPaint.hitTestChildren
#23 RenderBox.hitTest
#24 RenderProxyBoxMixin.hitTestChildren
#25 RenderBox.hitTest
#26 RenderProxyBoxMixin.hitTestChildren
#27 RenderBox.hitTest
#28 RenderProxyBoxMixin.hitTestChildren
#29 RenderBox.hitTest
#30 RenderProxyBoxMixin.hitTestChildren
#31 RenderBox.hitTest
#32 RenderView.hitTest
#33 RendererBinding.hitTest
#34 GestureBinding._handlePointerEventImmediately
#35 GestureBinding.handlePointerEvent
#36 GestureBinding._flushPointerEventQueue
#37 GestureBinding._handlePointerDataPacket
#38 _rootRunUnary (dart:async/zone.dart:1444:13)
#39 _CustomZone.runUnary (dart:async/zone.dart:1335:19)
#40 _CustomZone.runUnaryGuarded (dart:async/zone.dart:1244:7)
#41 _invoke1 (dart:ui/hooks.dart:169:10)
#42 PlatformDispatcher._dispatchPointerDataPacket (dart:ui/platform_dispatcher.dart:293:7)
#43 _dispatchPointerDataPacket (dart:ui/hooks.dart:88:31)
flutter doctor:
[√] Flutter (Channel stable, 2.10.3, on Microsoft Windows [Version 10.0.22000.527], locale zh-TW)
[X] Android toolchain - develop for Android devices
X Unable to locate Android SDK.
Install Android Studio from: https://developer.android.com/studio/index.html
On first launch it will assist you in installing the Android SDK components.
(or visit https://flutter.dev/docs/get-started/install/windows#android-setup for detailed instructions).
If the Android SDK has been installed to a custom location, please use
`flutter config --android-sdk` to update to that location.
[√] Chrome - develop for the web
[√] Visual Studio - develop for Windows (Visual Studio Community 2019 16.10.4)
[√] Android Studio (version 3.5)
[√] VS Code, 64-bit edition (version 1.63.2)
[√] Connected device (3 available)
[√] HTTP Host Availability
! Doctor found issues in 1 category.
flutter_typehead: flutter_typeahead: ^3.2.4
Edit:
It's easy to reproduce by adding direction: AxisDirection.up,
in the example of _FormExampleState
. So the bug is causing by direction
. In addition, I'm using windows desktop for the test.
If I comment out these to suggestionsList
only, no exceptions. So It must happen in FractionalTranslation
.
https://github.com/AbdulRahmanAlHamali/flutter_typeahead/blob/3845b716b2bea1b6e5234f44e42610f540f52aa3/lib/src/flutter_typeahead.dart#L907-L911
Closed due to lack of follow up and workaround