出現(xiàn)這個問題的原因可能是因為你把一個ListView或者GridView放到了一個沒有設(shè)置大小的容器里面導(dǎo)致的,所以意思是不能渲染那一個沒有布局過的容器。我這里遇到的錯誤是因為我把GridView放到了一個Container里面,并且我沒有設(shè)置Container寬高。
就導(dǎo)致了那個錯誤:
======== Exception caught by gestures library ======================================================
The following assertion was thrown while handling a pointer data packet:
Cannot hit test a render box that has never been laid out.The hitTest() method was called on this RenderBox: RenderStack#349bb NEEDS-LAYOUT NEEDS-PAINT
... ?parentData: offset=Offset(0.0, 0.0); id=_ScaffoldSlot.floatingActionButton
... ?constraints: MISSING
... ?size: MISSING
... ?alignment: Alignment.centerRight
... ?textDirection: ltr
... ?fit: loose
Unfortunately, this object's geometry is not known at this time, probably because it has never been laid out. This means it cannot be accurately hit-tested.If you are trying to perform a hit test during the layout phase itself, make sure you only hit test nodes that have completed layout (e.g. the node's children, after their layout() method has been called).
When the exception was thrown, this was the stack:?
#0 ? ? ?RenderBox.hitTest.<anonymous closure> (package:flutter/src/rendering/box.dart:2442:11)
#1 ? ? ?RenderBox.hitTest (package:flutter/src/rendering/box.dart:2473:6)
#2 ? ? ?RenderBoxContainerDefaultsMixin.defaultHitTestChildren.<anonymous closure> (package:flutter/src/rendering/box.dart:2854:25)
#3 ? ? ?BoxHitTestResult.addWithPaintOffset (package:flutter/src/rendering/box.dart:800:31)
#4 ? ? ?RenderBoxContainerDefaultsMixin.defaultHitTestChildren (package:flutter/src/rendering/box.dart:2849:33)
#5 ? ? ?RenderCustomMultiChildLayoutBox.hitTestChildren (package:flutter/src/rendering/custom_layout.dart:415:12)
#6 ? ? ?RenderBox.hitTest (package:flutter/src/rendering/box.dart:2475:11)
#7 ? ? ?RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:117:19)
#8 ? ? ?RenderBox.hitTest (package:flutter/src/rendering/box.dart:2475:11)
#9 ? ? ?RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:117:19)
#10 ? ? RenderBox.hitTest (package:flutter/src/rendering/box.dart:2475:11)
#11 ? ? RenderPhysicalModel.hitTest (package:flutter/src/rendering/proxy_box.dart:1990:18)
#12 ? ? RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:117:19)
#13 ? ? RenderBox.hitTest (package:flutter/src/rendering/box.dart:2475:11)
#14 ? ? RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:117:19)
#15 ? ? RenderBox.hitTest (package:flutter/src/rendering/box.dart:2475:11)
#16 ? ? RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:117:19)
#17 ? ? RenderBox.hitTest (package:flutter/src/rendering/box.dart:2475:11)
#18 ? ? RenderIgnorePointer.hitTest (package:flutter/src/rendering/proxy_box.dart:3609:31)
#19 ? ? RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:117:19)
#20 ? ? RenderBox.hitTest (package:flutter/src/rendering/box.dart:2475:11)
#21 ? ? RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:117:19)
#22 ? ? RenderBox.hitTest (package:flutter/src/rendering/box.dart:2475:11)
#23 ? ? RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:117:19)
#24 ? ? RenderBox.hitTest (package:flutter/src/rendering/box.dart:2475:11)
#25 ? ? RenderOffstage.hitTest (package:flutter/src/rendering/proxy_box.dart:3738:31)
#26 ? ? RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:117:19)
#27 ? ? RenderBox.hitTest (package:flutter/src/rendering/box.dart:2475:11)
#28 ? ? _RenderTheaterMixin.hitTestChildren.childHitTest (package:flutter/src/widgets/overlay.dart:856:81)
#29 ? ? BoxHitTestResult.addWithPaintOffset (package:flutter/src/rendering/box.dart:800:31)
#30 ? ? _RenderTheaterMixin.hitTestChildren (package:flutter/src/widgets/overlay.dart:857:22)
#31 ? ? RenderBox.hitTest (package:flutter/src/rendering/box.dart:2475:11)
#32 ? ? RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:117:19)
#33 ? ? RenderBox.hitTest (package:flutter/src/rendering/box.dart:2475:11)
#34 ? ? RenderAbsorbPointer.hitTest (package:flutter/src/rendering/proxy_box.dart:3856:17)
#35 ? ? RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:117:19)
#36 ? ? RenderProxyBoxWithHitTestBehavior.hitTest (package:flutter/src/rendering/proxy_box.dart:172:19)
#37 ? ? RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:117:19)
#38 ? ? RenderBox.hitTest (package:flutter/src/rendering/box.dart:2475:11)
#39 ? ? RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:117:19)
#40 ? ? RenderBox.hitTest (package:flutter/src/rendering/box.dart:2475:11)
#41 ? ? RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:117:19)
#42 ? ? RenderBox.hitTest (package:flutter/src/rendering/box.dart:2475:11)
#43 ? ? RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:117:19)
#44 ? ? RenderTapRegionSurface.hitTest (package:flutter/src/widgets/tap_region.dart:213:28)
#45 ? ? RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:117:19)
#46 ? ? RenderBox.hitTest (package:flutter/src/rendering/box.dart:2475:11)
#47 ? ? RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:117:19)
#48 ? ? RenderBox.hitTest (package:flutter/src/rendering/box.dart:2475:11)
#49 ? ? RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:117:19)
#50 ? ? RenderBox.hitTest (package:flutter/src/rendering/box.dart:2475:11)
#51 ? ? RenderView.hitTest (package:flutter/src/rendering/view.dart:194:14)
#52 ? ? RendererBinding.hitTestInView (package:flutter/src/rendering/binding.dart:534:16)
#53 ? ? GestureBinding._handlePointerEventImmediately (package:flutter/src/gestures/binding.dart:384:7)
#54 ? ? GestureBinding.handlePointerEvent (package:flutter/src/gestures/binding.dart:376:5)
#55 ? ? GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:323:7)
#56 ? ? GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:292:9)
#57 ? ? _invoke1 (dart:ui/hooks.dart:186:13)
#58 ? ? PlatformDispatcher._dispatchPointerDataPacket (dart:ui/platform_dispatcher.dart:424:7)
#59 ? ? _dispatchPointerDataPacket (dart:ui/hooks.dart:119:31)
============================================================================================================ Exception caught by gestures library ======================================================
The following assertion was thrown while handling a pointer data packet:
'package:flutter/src/rendering/mouse_tracker.dart': Failed assertion: line 205 pos 12: '!_debugDuringDeviceUpdate': is not true.
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.ymlWhen the exception was thrown, this was the stack:?
#2 ? ? ?MouseTracker._deviceUpdatePhase (package:flutter/src/rendering/mouse_tracker.dart:205:12)
#3 ? ? ?MouseTracker.updateWithEvent.<anonymous closure> (package:flutter/src/rendering/mouse_tracker.dart:328:7)
#4 ? ? ?MouseTracker._monitorMouseConnection (package:flutter/src/rendering/mouse_tracker.dart:193:9)
#5 ? ? ?MouseTracker.updateWithEvent (package:flutter/src/rendering/mouse_tracker.dart:327:5)
#6 ? ? ?RendererBinding.dispatchEvent (package:flutter/src/rendering/binding.dart:326:20)
#7 ? ? ?GestureBinding._handlePointerEventImmediately (package:flutter/src/gestures/binding.dart:413:7)
#8 ? ? ?GestureBinding.handlePointerEvent (package:flutter/src/gestures/binding.dart:376:5)
#9 ? ? ?GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:323:7)
#10 ? ? GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:292:9)
#11 ? ? _invoke1 (dart:ui/hooks.dart:186:13)
#12 ? ? PlatformDispatcher._dispatchPointerDataPacket (dart:ui/platform_dispatcher.dart:424:7)
#13 ? ? _dispatchPointerDataPacket (dart:ui/hooks.dart:119:31)
(elided 2 frames from class _AssertionError)
?所以添加一個寬高就好了:文章來源:http://www.zghlxwxcb.cn/news/detail-806411.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-806411.html
到了這里,關(guān)于flutter報錯Cannot hit test a render box that has never been laid out的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!