-
Notifications
You must be signed in to change notification settings - Fork 29.7k
Closed
Labels
frameworkflutter/packages/flutter repository. See also f: labels.flutter/packages/flutter repository. See also f: labels.
Description
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
- Create a container
Text.richwith width 502.5454545454545 - Make
textScaleFactor0.95 - Include in it a WidgetSpan which takes all available width
Expected results
No assertion thrown
Actual results
Assertion is thrown that child of _RenderScaledInlineWidget does not meet its constraints. That's because of floating point rounding error.
( 502.5454545454545 / 0.95 ) * 0.95
= 528.9952153110048 * 0.95
= 502.54545454545456
Code sample
Code sample
import 'package:flutter/material.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatefulWidget {
const MyApp({Key? key}) : super(key: key);
@override
createState() => MyAppState22();
}
class MyAppState22 extends State<MyApp> {
@override
Widget build(BuildContext context) {
return const MaterialApp(
home: Center(
child: SizedBox(
width: 502.5454545454545,
child: Text.rich(
WidgetSpan(child: Row()),
textScaleFactor: 0.95
)
)
)
);
}
}Screenshots or Video
No response
Logs
Logs
══╡ EXCEPTION CAUGHT BY RENDERING LIBRARY ╞═════════════════════════════════════════════════════════
The following assertion was thrown during performLayout():
_RenderScaledInlineWidget does not meet its constraints.
Constraints:
BoxConstraints(0.0<=w<=502.5, 0.0<=h<=Infinity)
Size:
Size(502.5, 0.0)
Constraints maxwidth callum:
502.5454545454545
Size width callum:
502.54545454545456
If you are not writing your own RenderBox subclass, then this is not your fault. Contact support:
https://github.com/flutter/flutter/issues/new?template=2_bug.yml
The relevant error-causing widget was:
Text Text:file:///Users/callum/Code/chan/lib/widgets/post_row.dart:169:19
When the exception was thrown, this was the stack:
#0 RenderBox.debugAssertDoesMeetConstraints.<anonymous closure>
(package:flutter/src/rendering/box.dart:2259:9)
#1 RenderBox.debugAssertDoesMeetConstraints (package:flutter/src/rendering/box.dart:2348:6)
#2 RenderBox.size=.<anonymous closure> (package:flutter/src/rendering/box.dart:2030:7)
#3 RenderBox.size= (package:flutter/src/rendering/box.dart:2032:6)
#4 _RenderScaledInlineWidget.performLayout (package:flutter/src/widgets/widget_span.dart:387:5)
#5 RenderObject.layout (package:flutter/src/rendering/object.dart:2493:7)
#6 RenderBox.layout (package:flutter/src/rendering/box.dart:2384:11)
#7 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:21)
#8 RenderObject.layout (package:flutter/src/rendering/object.dart:2493:7)
#9 RenderBox.layout (package:flutter/src/rendering/box.dart:2384:11)
#10 ChildLayoutHelper.layoutChild (package:flutter/src/rendering/layout_helper.dart:52:11)
#11 RenderInlineChildrenContainerDefaults._layoutChild (package:flutter/src/rendering/paragraph.dart:124:28)
#12 RenderInlineChildrenContainerDefaults.layoutInlineChildren
(package:flutter/src/rendering/paragraph.dart:156:9)
#13 RenderParagraph.performLayout (package:flutter/src/rendering/paragraph.dart:764:30)
#14 RenderObject.layout (package:flutter/src/rendering/object.dart:2493:7)
#15 RenderBox.layout (package:flutter/src/rendering/box.dart:2384:11)
#16 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:21)
#17 RenderObject.layout (package:flutter/src/rendering/object.dart:2493:7)
#18 RenderBox.layout (package:flutter/src/rendering/box.dart:2384:11)
#19 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:21)
#20 RenderObject.layout (package:flutter/src/rendering/object.dart:2493:7)
#21 RenderBox.layout (package:flutter/src/rendering/box.dart:2384:11)
#22 RenderPadding.performLayout (package:flutter/src/rendering/shifted_box.dart:238:12)
#23 RenderObject.layout (package:flutter/src/rendering/object.dart:2493:7)
#24 RenderBox.layout (package:flutter/src/rendering/box.dart:2384:11)
#25 ChildLayoutHelper.layoutChild (package:flutter/src/rendering/layout_helper.dart:52:11)
#26 RenderFlex._computeSizes (package:flutter/src/rendering/flex.dart:868:45)
#27 RenderFlex.performLayout (package:flutter/src/rendering/flex.dart:903:32)
#28 RenderObject.layout (package:flutter/src/rendering/object.dart:2493:7)
#29 RenderBox.layout (package:flutter/src/rendering/box.dart:2384:11)
#30 ChildLayoutHelper.layoutChild (package:flutter/src/rendering/layout_helper.dart:52:11)
#31 RenderFlex._computeSizes (package:flutter/src/rendering/flex.dart:868:45)
#32 RenderFlex.performLayout (package:flutter/src/rendering/flex.dart:903:32)
#33 RenderObject.layout (package:flutter/src/rendering/object.dart:2493:7)
#34 RenderBox.layout (package:flutter/src/rendering/box.dart:2384:11)
#35 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:21)
#36 RenderObject.layout (package:flutter/src/rendering/object.dart:2493:7)
#37 RenderBox.layout (package:flutter/src/rendering/box.dart:2384:11)
#38 ChildLayoutHelper.layoutChild (package:flutter/src/rendering/layout_helper.dart:52:11)
#39 RenderStack._computeSize (package:flutter/src/rendering/stack.dart:580:43)
#40 RenderStack.performLayout (package:flutter/src/rendering/stack.dart:607:12)
#41 RenderObject.layout (package:flutter/src/rendering/object.dart:2493:7)
#42 RenderBox.layout (package:flutter/src/rendering/box.dart:2384:11)
#43 RenderPadding.performLayout (package:flutter/src/rendering/shifted_box.dart:238:12)
#44 RenderObject.layout (package:flutter/src/rendering/object.dart:2493:7)
#45 RenderBox.layout (package:flutter/src/rendering/box.dart:2384:11)
#46 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:21)
#47 RenderObject.layout (package:flutter/src/rendering/object.dart:2493:7)
#48 RenderBox.layout (package:flutter/src/rendering/box.dart:2384:11)
#49 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:21)
#50 RenderObject.layout (package:flutter/src/rendering/object.dart:2493:7)
#51 RenderBox.layout (package:flutter/src/rendering/box.dart:2384:11)
#52 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:21)
#53 RenderObject.layout (package:flutter/src/rendering/object.dart:2493:7)
#54 RenderBox.layout (package:flutter/src/rendering/box.dart:2384:11)
#55 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:21)
#56 RenderObject.layout (package:flutter/src/rendering/object.dart:2493:7)
#57 RenderBox.layout (package:flutter/src/rendering/box.dart:2384:11)
#58 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:21)
#59 RenderObject.layout (package:flutter/src/rendering/object.dart:2493:7)
#60 RenderBox.layout (package:flutter/src/rendering/box.dart:2384:11)
#61 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:21)
#62 RenderObject.layout (package:flutter/src/rendering/object.dart:2493:7)
#63 RenderBox.layout (package:flutter/src/rendering/box.dart:2384:11)
#64 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:21)
#65 RenderObject.layout (package:flutter/src/rendering/object.dart:2493:7)
#66 RenderBox.layout (package:flutter/src/rendering/box.dart:2384:11)
#67 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:21)
#68 RenderObject.layout (package:flutter/src/rendering/object.dart:2493:7)
#69 RenderBox.layout (package:flutter/src/rendering/box.dart:2384:11)
#70 _RenderLayoutBuilder.performLayout (package:flutter/src/widgets/layout_builder.dart:315:14)
#71 RenderObject.layout (package:flutter/src/rendering/object.dart:2493:7)
#72 RenderBox.layout (package:flutter/src/rendering/box.dart:2384:11)
#73 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:21)
#74 RenderObject.layout (package:flutter/src/rendering/object.dart:2493:7)
#75 RenderBox.layout (package:flutter/src/rendering/box.dart:2384:11)
#76 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:21)
#77 RenderObject.layout (package:flutter/src/rendering/object.dart:2493:7)
#78 RenderBox.layout (package:flutter/src/rendering/box.dart:2384:11)
#79 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:21)
#80 RenderObject.layout (package:flutter/src/rendering/object.dart:2493:7)
#81 RenderBox.layout (package:flutter/src/rendering/box.dart:2384:11)
#82 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:21)
#83 RenderObject.layout (package:flutter/src/rendering/object.dart:2493:7)
#84 RenderBox.layout (package:flutter/src/rendering/box.dart:2384:11)
#85 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:21)
#86 RenderObject.layout (package:flutter/src/rendering/object.dart:2493:7)
#87 RenderBox.layout (package:flutter/src/rendering/box.dart:2384:11)
#88 ChildLayoutHelper.layoutChild (package:flutter/src/rendering/layout_helper.dart:52:11)
#89 RenderStack._computeSize (package:flutter/src/rendering/stack.dart:580:43)
#90 RenderStack.performLayout (package:flutter/src/rendering/stack.dart:607:12)
#91 RenderObject.layout (package:flutter/src/rendering/object.dart:2493:7)
#92 RenderBox.layout (package:flutter/src/rendering/box.dart:2384:11)
#93 RenderAnimatedSize.performLayout (package:flutter/src/rendering/animated_size.dart:210:12)
#94 RenderObject.layout (package:flutter/src/rendering/object.dart:2493:7)
#95 RenderBox.layout (package:flutter/src/rendering/box.dart:2384:11)
#96 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:21)
#97 _RenderCustomClip.performLayout (package:flutter/src/rendering/proxy_box.dart:1431:11)
#98 RenderObject.layout (package:flutter/src/rendering/object.dart:2493:7)
#99 RenderBox.layout (package:flutter/src/rendering/box.dart:2384:11)
#100 RenderAnimatedSize.performLayout (package:flutter/src/rendering/animated_size.dart:210:12)
#101 RenderObject.layout (package:flutter/src/rendering/object.dart:2493:7)
#102 RenderBox.layout (package:flutter/src/rendering/box.dart:2384:11)
#103 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:21)
#104 RenderObject.layout (package:flutter/src/rendering/object.dart:2493:7)
#105 RenderBox.layout (package:flutter/src/rendering/box.dart:2384:11)
#106 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:21)
#107 RenderObject.layout (package:flutter/src/rendering/object.dart:2493:7)
#108 RenderBox.layout (package:flutter/src/rendering/box.dart:2384:11)
#109 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:21)
#110 RenderObject.layout (package:flutter/src/rendering/object.dart:2493:7)
#111 RenderBox.layout (package:flutter/src/rendering/box.dart:2384:11)
#112 RenderSliverList.performLayout (package:flutter/src/rendering/sliver_list.dart:213:28)
#113 RenderObject.layout (package:flutter/src/rendering/object.dart:2493:7)
#114 RenderViewportBase.layoutChildSequence (package:flutter/src/rendering/viewport.dart:534:13)
#115 RenderViewport._attemptLayout (package:flutter/src/rendering/viewport.dart:1512:12)
#116 RenderViewport.performLayout (package:flutter/src/rendering/viewport.dart:1421:20)
#117 RenderObject.layout (package:flutter/src/rendering/object.dart:2493:7)
#118 RenderBox.layout (package:flutter/src/rendering/box.dart:2384:11)
#119 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:21)
#120 RenderObject.layout (package:flutter/src/rendering/object.dart:2493:7)
#121 RenderBox.layout (package:flutter/src/rendering/box.dart:2384:11)
#122 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:21)
#123 RenderObject.layout (package:flutter/src/rendering/object.dart:2493:7)
#124 RenderBox.layout (package:flutter/src/rendering/box.dart:2384:11)
#125 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:21)
#126 RenderObject.layout (package:flutter/src/rendering/object.dart:2493:7)
#127 RenderBox.layout (package:flutter/src/rendering/box.dart:2384:11)
#128 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:21)
#129 RenderObject.layout (package:flutter/src/rendering/object.dart:2493:7)
#130 RenderBox.layout (package:flutter/src/rendering/box.dart:2384:11)
#131 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:21)
#132 RenderObject.layout (package:flutter/src/rendering/object.dart:2493:7)
#133 RenderBox.layout (package:flutter/src/rendering/box.dart:2384:11)
#134 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:21)
#135 RenderObject.layout (package:flutter/src/rendering/object.dart:2493:7)
#136 RenderBox.layout (package:flutter/src/rendering/box.dart:2384:11)
#137 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:21)
#138 RenderObject.layout (package:flutter/src/rendering/object.dart:2493:7)
#139 RenderBox.layout (package:flutter/src/rendering/box.dart:2384:11)
#140 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:21)
#141 RenderCustomPaint.performLayout (package:flutter/src/rendering/custom_paint.dart:554:11)
#142 RenderObject.layout (package:flutter/src/rendering/object.dart:2493:7)
#143 RenderBox.layout (package:flutter/src/rendering/box.dart:2384:11)
#144 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:21)
#145 RenderObject.layout (package:flutter/src/rendering/object.dart:2493:7)
#146 RenderBox.layout (package:flutter/src/rendering/box.dart:2384:11)
#147 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:21)
#148 RenderObject.layout (package:flutter/src/rendering/object.dart:2493:7)
#149 RenderBox.layout (package:flutter/src/rendering/box.dart:2384:11)
#150 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:21)
#151 RenderObject.layout (package:flutter/src/rendering/object.dart:2493:7)
#152 RenderBox.layout (package:flutter/src/rendering/box.dart:2384:11)
#153 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:21)
#154 RenderObject.layout (package:flutter/src/rendering/object.dart:2493:7)
#155 RenderBox.layout (package:flutter/src/rendering/box.dart:2384:11)
#156 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:21)
#157 RenderObject.layout (package:flutter/src/rendering/object.dart:2493:7)
#158 RenderBox.layout (package:flutter/src/rendering/box.dart:2384:11)
#159 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:21)
#160 RenderObject.layout (package:flutter/src/rendering/object.dart:2493:7)
#161 RenderBox.layout (package:flutter/src/rendering/box.dart:2384:11)
#162 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:21)
#163 RenderObject.layout (package:flutter/src/rendering/object.dart:2493:7)
#164 RenderBox.layout (package:flutter/src/rendering/box.dart:2384:11)
#165 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:21)
#166 RenderObject.layout (package:flutter/src/rendering/object.dart:2493:7)
#167 RenderBox.layout (package:flutter/src/rendering/box.dart:2384:11)
#168 ChildLayoutHelper.layoutChild (package:flutter/src/rendering/layout_helper.dart:52:11)
#169 RenderStack._computeSize (package:flutter/src/rendering/stack.dart:580:43)
#170 RenderStack.performLayout (package:flutter/src/rendering/stack.dart:607:12)
#171 RenderObject._layoutWithoutResize (package:flutter/src/rendering/object.dart:2332:7)
#172 PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:1013:18)
#173 RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:494:19)
#174 WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:918:13)
#175 RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:360:5)
#176 SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1300:15)
#177 SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1230:9)
#178 SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:1086:5)
#182 _invoke (dart:ui/hooks.dart:172:10)
#183 PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:401:5)
#184 _drawFrame (dart:ui/hooks.dart:140:31)
(elided 3 frames from dart:async)
The following RenderObject was being processed when the exception was fired: _RenderScaledInlineWidget#07718
relayoutBoundary=up33 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE:
creator: _AutoScaleInlineWidget ← Semantics ← _WidgetSpanParentData ← RichText ← Text ← Listener ←
ConditionalOnTapUp ← IgnorePointer ← Padding ← Builder ←
_InheritedProviderScope<PostSpanZoneData?> ← ChangeNotifierProvider<PostSpanZoneData> ← ⋯
parentData: <none> (can use size)
constraints: BoxConstraints(0.0<=w<=502.5, 0.0<=h<=Infinity)
size: Size(502.5, 0.0)
This RenderObject had the following child:
child: RenderConstrainedBox#79fbf relayoutBoundary=up34 NEEDS-PAINT
════════════════════════════════════════════════════════════════════════════════════════════════════Flutter Doctor output
Doctor output
[!] Flutter (Channel master, 3.13.0-3.0.pre.21, on macOS 13.4.1 22F82
darwin-arm64, locale en-CA)
• Flutter version 3.13.0-3.0.pre.21 on channel master at
/Users/callum/Code/flutter
! Upstream repository https://github.com/moffatman/flutter.git is not a
standard remote.
Set environment variable "FLUTTER_GIT_URL" to
https://github.com/moffatman/flutter.git to dismiss this error.
• Framework revision 40ebe3f5b7 (2 days ago), 2023-07-12 11:14:00 -0400
• Engine revision d68ea304ee
• Dart version 3.1.0 (build 3.1.0-300.0.dev)
• DevTools version 2.25.0
• If those were intentional, you can disregard the above warnings; however
it is recommended to use "git" directly to perform update checks and
upgrades.
[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.0)
• Android SDK at /Users/callum/Library/Android/sdk
• Platform android-33, build-tools 33.0.0
• Java binary at: /Applications/Android
Studio.app/Contents/jbr/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build
17.0.6+0-17.0.6b802.4-9586694)
• All Android licenses accepted.
[✓] Xcode - develop for iOS and macOS (Xcode 14.3.1)
• Xcode at /Applications/Xcode.app/Contents/Developer
• Build 14E300c
• CocoaPods version 1.12.1
[✓] Chrome - develop for the web
• Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
[✓] Android Studio (version 2022.2)
• Android Studio at /Applications/Android Studio.app/Contents
• Flutter plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/6351-dart
• Java version OpenJDK Runtime Environment (build
17.0.6+0-17.0.6b802.4-9586694)
[✓] VS Code (version 1.79.2)
• VS Code at /Applications/Visual Studio Code.app/Contents
• Flutter extension version 3.68.0
[✓] Connected device (2 available)
• macOS (desktop) • macos • darwin-arm64 • macOS 13.4.1 22F82
darwin-arm64
• Chrome (web) • chrome • web-javascript • Google Chrome 114.0.5735.198
[✓] Network resources
• All expected network resources are available.
! Doctor found issues in 1 category.Metadata
Metadata
Assignees
Labels
frameworkflutter/packages/flutter repository. See also f: labels.flutter/packages/flutter repository. See also f: labels.