Skip to content

[BUG] [3.0.0-alpha.6] _RenderCSSBox cannot compute max intrinsic height #1165

Closed
@tomk9

Description

@tomk9

Describe the bug:

I use Html widget nested in IntrinsicHeight and SingleChildScrollView as follows:

import 'package:flutter/material.dart';
import 'package:flutter_html/flutter_html.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      home: Scaffold(
        appBar: AppBar(),
        body: LayoutBuilder(
          builder: (context, constraints) {
            return SingleChildScrollView(
              child: ConstrainedBox(
                constraints: BoxConstraints(
                  minHeight: constraints.maxHeight,
                ),
                child: IntrinsicHeight(
                  child: Column(
                    crossAxisAlignment: CrossAxisAlignment.stretch,
                    children: [
                      Html(
                        data: 'Test',
                      ),
                      const Spacer(),
                      Container(
                        height: 200,
                        color: Colors.red,
                      ),
                    ],
                  ),
                ),
              ),
            );
          },
        ),
      ),
    );
  }
}

It works well with flutter_html: 3.0.0-alpha.5 but doesn't work with flutter_html: 3.0.0-alpha.6.
Exception message is

Intrinsics are not available for PlaceholderAlignment.baseline, PlaceholderAlignment.aboveBaseline, or PlaceholderAlignment.belowBaseline.

Expected behavior:

Should render as on the screenshot from version 3.0.0-alpha.5.

Screenshots:

3.0.0-alpha.5 3.0.0-alpha.6
Simulator Screen Shot - iPhone 14 Pro Max - 2022-10-13 at 23 45 01 Simulator Screen Shot - iPhone 14 Pro Max - 2022-10-13 at 23 49 32

Device details and Flutter/Dart/flutter_html versions:

[✓] Flutter (Channel stable, 3.3.4, on macOS 12.6 21G115 darwin-arm, locale en-PL)
    • Flutter version 3.3.4 on channel stable at /Users/tomasz/development/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision eb6d86ee27 (9 days ago), 2022-10-04 22:31:45 -0700
    • Engine revision c08d7d5efc
    • Dart version 2.18.2
    • DevTools version 2.15.0
Stacktrace/Logcat
_AssertionError._doThrowNew (errors_patch.dart:51)
_AssertionError._throwNew (errors_patch.dart:40)
RenderParagraph._canComputeIntrinsics (paragraph.dart:502)
RenderParagraph._computeIntrinsicHeight (paragraph.dart:459)
RenderParagraph.computeMaxIntrinsicHeight (paragraph.dart:474)
RenderBox._computeIntrinsicDimension.<anonymous closure> (box.dart:1416)
_LinkedHashMapMixin.putIfAbsent (compact_hash.dart:527)
RenderBox._computeIntrinsicDimension (box.dart:1414)
RenderBox.getMaxIntrinsicHeight (box.dart:1781)
RenderPadding.computeMaxIntrinsicHeight (shifted_box.dart:213)
RenderBox._computeIntrinsicDimension.<anonymous closure> (box.dart:1416)
_LinkedHashMapMixin.putIfAbsent (compact_hash.dart:527)
RenderBox._computeIntrinsicDimension (box.dart:1414)
RenderBox.getMaxIntrinsicHeight (box.dart:1781)
RenderProxyBoxMixin.computeMaxIntrinsicHeight (proxy_box.dart:96)
RenderBox._computeIntrinsicDimension.<anonymous closure> (box.dart:1416)
_LinkedHashMapMixin.putIfAbsent (compact_hash.dart:527)
RenderBox._computeIntrinsicDimension (box.dart:1414)
RenderBox.getMaxIntrinsicHeight (box.dart:1781)
_RenderCSSBox.computeMaxIntrinsicHeight.<anonymous closure> (css_box_widget.dart:418)
_RenderCSSBox.getIntrinsicDimension (css_box_widget.dart:390)
_RenderCSSBox.computeMaxIntrinsicHeight (css_box_widget.dart:417)
RenderBox._computeIntrinsicDimension.<anonymous closure> (box.dart:1416)
_LinkedHashMapMixin.putIfAbsent (compact_hash.dart:527)
RenderBox._computeIntrinsicDimension (box.dart:1414)
RenderBox.getMaxIntrinsicHeight (box.dart:1781)
RenderFlex.computeMaxIntrinsicHeight.<anonymous closure> (flex.dart:636)
RenderFlex._getIntrinsicSize (flex.dart:544)
RenderFlex.computeMaxIntrinsicHeight (flex.dart:633)
RenderBox._computeIntrinsicDimension.<anonymous closure> (box.dart:1416)
_LinkedHashMapMixin.putIfAbsent (compact_hash.dart:527)
RenderBox._computeIntrinsicDimension (box.dart:1414)
RenderBox.getMaxIntrinsicHeight (box.dart:1781)
RenderIntrinsicHeight._computeSize (proxy_box.dart:833)
RenderIntrinsicHeight.performLayout (proxy_box.dart:853)
RenderObject.layout (object.dart:2135)
RenderBox.layout (box.dart:2418)
RenderConstrainedBox.performLayout (proxy_box.dart:292)
RenderObject.layout (object.dart:2135)
RenderBox.layout (box.dart:2418)
_RenderSingleChildViewport.performLayout (single_child_scroll_view.dart:517)
RenderObject.layout (object.dart:2135)
RenderBox.layout (box.dart:2418)
RenderProxyBoxMixin.performLayout (proxy_box.dart:120)
RenderObject.layout (object.dart:2135)
RenderBox.layout (box.dart:2418)
RenderProxyBoxMixin.performLayout (proxy_box.dart:120)
RenderObject.layout (object.dart:2135)
RenderBox.layout (box.dart:2418)
RenderProxyBoxMixin.performLayout (proxy_box.dart:120)
RenderObject.layout (object.dart:2135)
RenderBox.layout (box.dart:2418)
RenderProxyBoxMixin.performLayout (proxy_box.dart:120)
RenderObject.layout (object.dart:2135)
RenderBox.layout (box.dart:2418)
RenderProxyBoxMixin.performLayout (proxy_box.dart:120)
RenderObject.layout (object.dart:2135)
RenderBox.layout (box.dart:2418)
RenderProxyBoxMixin.performLayout (proxy_box.dart:120)
RenderObject.layout (object.dart:2135)
RenderBox.layout (box.dart:2418)
_RenderLayoutBuilder.performLayout (layout_builder.dart:318)
RenderObject.layout (object.dart:2135)
RenderBox.layout (box.dart:2418)
MultiChildLayoutDelegate.layoutChild (custom_layout.dart:171)
_ScaffoldLayout.performLayout (scaffold.dart:1055)
MultiChildLayoutDelegate._callPerformLayout (custom_layout.dart:240)
RenderCustomMultiChildLayoutBox.performLayout (custom_layout.dart:410)
RenderObject.layout (object.dart:2135)
RenderBox.layout (box.dart:2418)
RenderProxyBoxMixin.performLayout (proxy_box.dart:120)
RenderObject.layout (object.dart:2135)
RenderBox.layout (box.dart:2418)
RenderProxyBoxMixin.performLayout (proxy_box.dart:120)
_RenderCustomClip.performLayout (proxy_box.dart:1462)
RenderObject.layout (object.dart:2135)
RenderBox.layout (box.dart:2418)
RenderProxyBoxMixin.performLayout (proxy_box.dart:120)
RenderObject.layout (object.dart:2135)
RenderBox.layout (box.dart:2418)
RenderProxyBoxMixin.performLayout (proxy_box.dart:120)
RenderObject.layout (object.dart:2135)
RenderBox.layout (box.dart:2418)
RenderProxyBoxMixin.performLayout (proxy_box.dart:120)
RenderObject.layout (object.dart:2135)
RenderBox.layout (box.dart:2418)
ChildLayoutHelper.layoutChild (layout_helper.dart:56)
RenderStack._computeSize (stack.dart:595)
RenderStack.performLayout (stack.dart:622)
RenderObject.layout (object.dart:2135)
RenderBox.layout (box.dart:2418)
RenderProxyBoxMixin.performLayout (proxy_box.dart:120)
RenderObject.layout (object.dart:2135)
RenderBox.layout (box.dart:2418)
RenderProxyBoxMixin.performLayout (proxy_box.dart:120)
RenderObject.layout (object.dart:2135)
RenderBox.layout (box.dart:2418)
RenderProxyBoxMixin.performLayout (proxy_box.dart:120)
RenderObject.layout (object.dart:2135)
RenderBox.layout (box.dart:2418)
RenderProxyBoxMixin.performLayout (proxy_box.dart:120)
RenderObject.layout (object.dart:2135)
RenderBox.layout (box.dart:2418)
RenderProxyBoxMixin.performLayout (proxy_box.dart:120)
RenderObject.layout (object.dart:2135)
RenderBox.layout (box.dart:2418)
RenderProxyBoxMixin.performLayout (proxy_box.dart:120)
RenderObject.layout (object.dart:2135)
RenderBox.layout (box.dart:2418)
RenderProxyBoxMixin.performLayout (proxy_box.dart:120)
RenderOffstage.performLayout (proxy_box.dart:3737)
RenderObject.layout (object.dart:2135)
RenderBox.layout (box.dart:2418)
RenderProxyBoxMixin.performLayout (proxy_box.dart:120)
RenderObject.layout (object.dart:2135)
RenderBox.layout (box.dart:2418)
_RenderTheatre.performLayout (overlay.dart:804)
RenderObject.layout (object.dart:2135)
RenderBox.layout (box.dart:2418)
RenderProxyBoxMixin.performLayout (proxy_box.dart:120)
RenderObject.layout (object.dart:2135)
RenderBox.layout (box.dart:2418)
RenderProxyBoxMixin.performLayout (proxy_box.dart:120)
RenderObject.layout (object.dart:2135)
RenderBox.layout (box.dart:2418)
RenderProxyBoxMixin.performLayout (proxy_box.dart:120)
RenderObject.layout (object.dart:2135)
RenderBox.layout (box.dart:2418)
RenderProxyBoxMixin.performLayout (proxy_box.dart:120)
RenderCustomPaint.performLayout (custom_paint.dart:552)
RenderObject.layout (object.dart:2135)
RenderBox.layout (box.dart:2418)
RenderProxyBoxMixin.performLayout (proxy_box.dart:120)
RenderObject.layout (object.dart:2135)
RenderBox.layout (box.dart:2418)
RenderProxyBoxMixin.performLayout (proxy_box.dart:120)
RenderObject.layout (object.dart:2135)
RenderBox.layout (box.dart:2418)
RenderProxyBoxMixin.performLayout (proxy_box.dart:120)
RenderObject.layout (object.dart:2135)
RenderBox.layout (box.dart:2418)
RenderProxyBoxMixin.performLayout (proxy_box.dart:120)
RenderObject.layout (object.dart:2135)
RenderBox.layout (box.dart:2418)
RenderProxyBoxMixin.performLayout (proxy_box.dart:120)
RenderObject.layout (object.dart:2135)
RenderBox.layout (box.dart:2418)
RenderView.performLayout (view.dart:170)
RenderObject._layoutWithoutResize (object.dart:1973)
PipelineOwner.flushLayout (object.dart:999)
RendererBinding.drawFrame (binding.dart:513)
WidgetsBinding.drawFrame (binding.dart:884)
RendererBinding._handlePersistentFrameCallback (binding.dart:378)
SchedulerBinding._invokeFrameCallback (binding.dart:1175)
SchedulerBinding.handleDrawFrame (binding.dart:1104)
SchedulerBinding.scheduleWarmUpFrame.<anonymous closure> (binding.dart:881)
Timer._createTimer.<anonymous closure> (timer_patch.dart:18)
_Timer._runTimers (timer_impl.dart:398)
_Timer._handleMessage (timer_impl.dart:429)
_RawReceivePortImpl._handleMessage (isolate_patch.dart:192)

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Projects

Status

Done

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions