Skip to content

[BUG] Html Widget in AlertDialog with custom insetPadding #1184

@mauriceraguseinit

Description

@mauriceraguseinit

Describe the bug:
in flutter_html 3.0.0-alpha.6 I can't rendert HTML in an AlertDialog. On some Devices it works, but eg. on Tablets it crashes ... the problem is releated with the insetPadding property of the AlertDialog Widget. In flutter_html 2.x it works perfectly.

HTML to reproduce the issue:

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

void main() {
  runApp(
    MaterialApp(
      home: Scaffold(
        floatingActionButton: Builder(
          builder: (context) {
            return FloatingActionButton(
              onPressed: () {
                showDialog(
                    context: context,
                    builder: (context) => AlertDialog(
                        insetPadding: const EdgeInsets.symmetric(horizontal: 14.0, vertical: 24.0), //this is crashing the app
                        content: Html(data: 'hello')));
              },
              child: const Icon(Icons.add),
            );
          },
        ),
      ),
    ),
  );
}

Html widget configuration:
default

Expected behavior:
show text in alert dialog

Screenshots:
nothing to show

Device details and Flutter/Dart/flutter_html versions:
Flutter 3.3.6, flutter_html 3.0.0-alpha.6

Stacktrace/Logcat

E/flutter (20254): [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: Cannot hit test a render box with no size.
E/flutter (20254): The hitTest() method was called on this RenderBox: RenderConstrainedBox#d3c76 relayoutBoundary=up1:
E/flutter (20254): creator: ConstrainedBox ← Align ← MediaQuery ← Padding ← AnimatedPadding ← Dialog ← AlertDialog ← MediaQuery ← Padding ← DisplayFeatureSubScreen ← Semantics ← Builder ← ⋯
E/flutter (20254): parentData: offset=Offset(0.0, 0.0) (can use size)
E/flutter (20254): constraints: BoxConstraints(0.0<=w<=292.0, 0.0<=h<=642.7)
E/flutter (20254): size: MISSING
E/flutter (20254): additionalConstraints: BoxConstraints(280.0<=w<=Infinity, 0.0<=h<=Infinity)
E/flutter (20254): Although this node is not marked as needing layout, its size is not set.
E/flutter (20254): A RenderBox object must have an explicit size before it can be hit-tested. Make sure that the RenderBox in question sets its size during layout.
E/flutter (20254): #0 RenderBox.hitTest. (package:flutter/src/rendering/box.dart:2494:9)
E/flutter (20254): #1 RenderBox.hitTest (package:flutter/src/rendering/box.dart:2509:6)
E/flutter (20254): #2 RenderShiftedBox.hitTestChildren. (package:flutter/src/rendering/shifted_box.dart:97:25)
E/flutter (20254): #3 BoxHitTestResult.addWithPaintOffset (package:flutter/src/rendering/box.dart:805:31)
E/flutter (20254): #4 RenderShiftedBox.hitTestChildren (package:flutter/src/rendering/shifted_box.dart:92:21)
E/flutter (20254): #5 RenderBox.hitTest (package:flutter/src/rendering/box.dart:2511:11)
E/flutter (20254): #6 RenderShiftedBox.hitTestChildren. (package:flutter/src/rendering/shifted_box.dart:97:25)
E/flutter (20254): #7 BoxHitTestResult.addWithPaintOffset (package:flutter/src/rendering/box.dart:805:31)
E/flutter (20254): #8 RenderShiftedBox.hitTestChildren (package:flutter/src/rendering/shifted_box.dart:92:21)
E/flutter (20254): #9 RenderBox.hitTest (package:flutter/src/rendering/box.dart:2511:11)
E/flutter (20254): #10 RenderShiftedBox.hitTestChildren. (package:flutter/src/rendering/shifted_box.dart:97:25)
E/flutter (20254): #11 BoxHitTestResult.addWithPaintOffset (package:flutter/src/rendering/box.dart:805:31)
E/flutter (20254): #12 RenderShiftedBox.hitTestChildren (package:flutter/src/rendering/shifted_box.dart:92:21)
E/flutter (20254): #13 RenderBox.hitTest (package:flutter/src/rendering/box.dart:2511:11)
E/flutter (20254): #14 RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:135:19)
E/flutter (20254): #15 RenderBox.hitTest (package:flutter/src/rendering/box.dart:2511:11)
E/flutter (20254): #16 RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:135:19)
E/flutter (20254): #17 RenderBox.hitTest (package:flutter/src/rendering/box.dart:2511:11)
E/flutter (20254): #18 RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:135:19)
E/flutter (20254): #19 RenderBox.hitTest (package:flutter/src/rendering/box.dart:2511:11)
E/flutter (20254): #20 RenderIgnorePointer.hitTest (package:flutter/src/rendering/proxy_box.dart:3618:31)
E/flutter (20254): #21 RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:135:19)
E/flutter (20254): #22 RenderTransform.hitTestChildren. (package:flutter/src/rendering/proxy_box.dart:2590:22)
E/flutter (20254): #23 BoxHitTestResult.addWithRawTransform (package:flutter/src/rendering/box.dart:844:31)
E/flutter (20254): #24 BoxHitTestResult.addWithPaintTransform (package:flutter/src/rendering/box.dart:769:12)
E/flutter (20254): #25 RenderTransform.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:2586:19)
E/flutter (20254): #26 RenderTransform.hitTest (package:flutter/src/rendering/proxy_box.dart:2580:12)
E/flutter (20254): #27 RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:135:19)
E/flutter (20254): #28 RenderBox.hitTest (package:flutter/src/rendering/box.dart:2511:11)
E/flutter (20254): #29 RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:135:19)
E/flutter (20254): #30 RenderBox.hitTest (package:flutter/src/rendering/box.dart:2511:11)
E/flutter (20254): #31 RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:135:19)
E/flutter (20254): #32 _RenderFocusTrap.hitTest (package:flutter/src/widgets/routes.dart:2217:19)
E/flutter (20254): #33 RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:135:19)
E/flutter (20254): #34 RenderBox.hitTest (package:flutter/src/rendering/box.dart:2511:11)
E/flutter (20254): #35 RenderProxyBo
E/flutter (20254): [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: Cannot hit test a render box with no size.
E/flutter (20254): The hitTest() method was called on this RenderBox: RenderConstrainedBox#d3c76 relayoutBoundary=up1:
E/flutter (20254): creator: ConstrainedBox ← Align ← MediaQuery ← Padding ← AnimatedPadding ← Dialog ← AlertDialog ← MediaQuery ← Padding ← DisplayFeatureSubScreen ← Semantics ← Builder ← ⋯
E/flutter (20254): parentData: offset=Offset(0.0, 0.0) (can use size)
E/flutter (20254): constraints: BoxConstraints(0.0<=w<=292.0, 0.0<=h<=642.7)
E/flutter (20254): size: MISSING
E/flutter (20254): additionalConstraints: BoxConstraints(280.0<=w<=Infinity, 0.0<=h<=Infinity)
E/flutter (20254): Although this node is not marked as needing layout, its size is not set.
E/flutter (20254): A RenderBox object must have an explicit size before it can be hit-tested. Make sure that the RenderBox in question sets its size during layout.
E/flutter (20254): #0 RenderBox.hitTest. (package:flutter/src/rendering/box.dart:2494:9)
E/flutter (20254): #1 RenderBox.hitTest (package:flutter/src/rendering/box.dart:2509:6)
E/flutter (20254): #2 RenderShiftedBox.hitTestChildren. (package:flutter/src/rendering/shifted_box.dart:97:25)
E/flutter (20254): #3 BoxHitTestResult.addWithPaintOffset (package:flutter/src/rendering/box.dart:805:31)
E/flutter (20254): #4 RenderShiftedBox.hitTestChildren (package:flutter/src/rendering/shifted_box.dart:92:21)
E/flutter (20254): #5 RenderBox.hitTest (package:flutter/src/rendering/box.dart:2511:11)
E/flutter (20254): #6 RenderShiftedBox.hitTestChildren. (package:flutter/src/rendering/shifted_box.dart:97:25)
E/flutter (20254): #7 BoxHitTestResult.addWithPaintOffset (package:flutter/src/rendering/box.dart:805:31)
E/flutter (20254): #8 RenderShiftedBox.hitTestChildren (package:flutter/src/rendering/shifted_box.dart:92:21)
E/flutter (20254): #9 RenderBox.hitTest (package:flutter/src/rendering/box.dart:2511:11)
E/flutter (20254): #10 RenderShiftedBox.hitTestChildren. (package:flutter/src/rendering/shifted_box.dart:97:25)
E/flutter (20254): #11 BoxHitTestResult.addWithPaintOffset (package:flutter/src/rendering/box.dart:805:31)
E/flutter (20254): #12 RenderShiftedBox.hitTestChildren (package:flutter/src/rendering/shifted_box.dart:92:21)
E/flutter (20254): #13 RenderBox.hitTest (package:flutter/src/rendering/box.dart:2511:11)
E/flutter (20254): #14 RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:135:19)
E/flutter (20254): #15 RenderBox.hitTest (package:flutter/src/rendering/box.dart:2511:11)
E/flutter (20254): #16 RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:135:19)
E/flutter (20254): #17 RenderBox.hitTest (package:flutter/src/rendering/box.dart:2511:11)
E/flutter (20254): #18 RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:135:19)
E/flutter (20254): #19 RenderBox.hitTest (package:flutter/src/rendering/box.dart:2511:11)
E/flutter (20254): #20 RenderIgnorePointer.hitTest (package:flutter/src/rendering/proxy_box.dart:3618:31)
E/flutter (20254): #21 RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:135:19)
E/flutter (20254): #22 RenderTransform.hitTestChildren. (package:flutter/src/rendering/proxy_box.dart:2590:22)
E/flutter (20254): #23 BoxHitTestResult.addWithRawTransform (package:flutter/src/rendering/box.dart:844:31)
E/flutter (20254): #24 BoxHitTestResult.addWithPaintTransform (package:flutter/src/rendering/box.dart:769:12)
E/flutter (20254): #25 RenderTransform.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:2586:19)
E/flutter (20254): #26 RenderTransform.hitTest (package:flutter/src/rendering/proxy_box.dart:2580:12)
E/flutter (20254): #27 RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:135:19)
E/flutter (20254): #28 RenderBox.hitTest (package:flutter/src/rendering/box.dart:2511:11)
E/flutter (20254): #29 RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:135:19)
E/flutter (20254): #30 RenderBox.hitTest (package:flutter/src/rendering/box.dart:2511:11)
E/flutter (20254): #31 RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:135:19)
E/flutter (20254): #32 _RenderFocusTrap.hitTest (package:flutter/src/widgets/routes.dart:2217:19)
E/flutter (20254): #33 RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:135:19)
E/flutter (20254): #34 RenderBox.hitTest (package:flutter/src/rendering/box.dart:2511:11)
E/flutter (20254): #35 RenderProxyBo

Additional info:

A picture of a cute animal (not mandatory but encouraged)

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingduplicateThis issue or pull request already exists

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions