Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Failed assertion: line x pos y: '!_needsLayout': is not true. #78172

Open
Octofoxy opened this issue Mar 14, 2021 · 10 comments
Open

Failed assertion: line x pos y: '!_needsLayout': is not true. #78172

Octofoxy opened this issue Mar 14, 2021 · 10 comments
Labels
a: error message Error messages from the Flutter framework f: material design flutter/packages/flutter/material repository. found in release: 2.1 Found to occur in 2.1 framework flutter/packages/flutter repository. See also f: labels. has reproducible steps The issue has been confirmed reproducible and is ready to work on team-design Owned by Design Languages team triaged-design Triaged by Design Languages team

Comments

@Octofoxy
Copy link

Octofoxy commented Mar 14, 2021

I got an error message, which asks me to file a bug report. You can find the lib folder and pubspec.yaml in the zip.

�[38;5;248m════════ Exception caught by rendering library ═════════════════════════════════�[39;49m
�[38;5;244mThe following assertion was thrown during paint():�


[39;49m
'package:flutter/src/painting/text_painter.dart': Failed assertion: line 488 pos 12: '!_needsLayout': is not true.

�[38;5;248mEither 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=BUG.md
�[39;49m

�[38;5;244mThe relevant error-causing widget was�[39;49m
�[38;5;248mSlider�[39;49m
�[38;5;244mWhen the exception was thrown, this was the stack�[39;49m
�[38;5;244m#2      TextPainter.width�[39;49m
�[38;5;244m#3      _PaddleSliderValueIndicatorPathPainter.paint�[39;49m
�[38;5;244m#4      PaddleSliderValueIndicatorShape.paint�[39;49m
�[38;5;248m#5      ThumbShape.paint�[39;49m
�[38;5;244m#6      _RenderSlider.paint�[39;49m
�[38;5;244m...�[39;49m
�[38;5;244mThe following RenderObject was being processed when the exception was fired: _RenderSlider#dc1b6�[39;49m
�[38;5;244mRenderObject: _RenderSlider#dc1b6�[39;49m
    �[38;5;244mparentData: <none> (can use size)�[39;49m
    �[38;5;244mconstraints: BoxConstraints(0.0<=w<=411.4, 0.0<=h<=Infinity)�[39;49m
    �[38;5;244msize: Size(411.4, 48.0)�[39;49m
�[38;5;248m════════════════════════════════════════════════════════════════════════════════�[39;49m

�[38;5;248m════════ Exception caught by rendering library ═════════════════════════════════�[39;49m
'package:flutter/src/painting/text_painter.dart': Failed assertion: line 488 pos 12: '!_needsLayout': is not true.
�[38;5;244mThe relevant error-causing widget was�[39;49m
�[38;5;248mSlider�[39;49m
�[38;5;248m════════════════════════════════════════════════════════════════════════════════�[39;49m

�[38;5;248m════════ Exception caught by rendering library ═════════════════════════════════�[39;49m
'package:flutter/src/painting/text_painter.dart': Failed assertion: line 488 pos 12: '!_needsLayout': is not true.
�[38;5;244mThe relevant error-causing widget was�[39;49m
�[38;5;248mSlider�[39;49m
�[38;5;248m════════════════════════════════════════════════════════════════════════════════�[39;49m

�[38;5;248m════════ Exception caught by rendering library ═════════════════════════════════�[39;49m
'package:flutter/src/painting/text_painter.dart': Failed assertion: line 488 pos 12: '!_needsLayout': is not true.
�[38;5;244mThe relevant error-causing widget was�[39;49m
�[38;5;248mSlider�[39;49m
�[38;5;248m════════════════════════════════════════════════════════════════════════════════�[39;49m

�[38;5;248m════════ Exception caught by rendering library ═════════════════════════════════�[39;49m
'package:flutter/src/painting/text_painter.dart': Failed assertion: line 488 pos 12: '!_needsLayout': is not true.
�[38;5;244mThe relevant error-causing widget was�[39;49m
�[38;5;248mSlider�[39;49m
�[38;5;248m════════════════════════════════════════════════════════════════════════════════�[39;49m

Short explanation of what you will find in the zip:
I built a widget, "MultiSlider", which uses the standard Flutter sliders. The widgets returns a master slider and a number of subsliders. The sum of the subsliders values can never exceed the value of the masterslider. The widget itself works fine without errors.

I also have a custom thumb button, which itself works fine and without errors on the example slider from the Flutter documentation. However, when I introduced SliderTheme() to use the custom thumb button with the sliders contained in my MultiSlider widget, I got those errors.
lib.zip

@darshankawar darshankawar added the in triage Presently being triaged by the triage team label Mar 15, 2021
@darshankawar
Copy link
Member

@Octofoxy
What version do you get this error on ? Can you provide flutter doctor -v ?

@darshankawar darshankawar added the waiting for customer response The Flutter team cannot make further progress on this issue until the original reporter responds label Mar 15, 2021
@Octofoxy
Copy link
Author

Octofoxy commented Mar 15, 2021

@darshankawar flutter doctor -v console output below:

[√] Flutter (Channel stable, 1.22.5, on Microsoft Windows [Version 10.0.19042.867], locale de-DE)
• Flutter version 1.22.5 at C:\Users***\Code\flutter
• Framework revision 7891006 (3 months ago), 2020-12-10 11:54:40 -0800
• Engine revision ae90085a84
• Dart version 2.10.4

[√] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
• Android SDK at C:\Users***\AppData\Local\Android\sdk
• Platform android-30, build-tools 30.0.3
• Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
• Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)
• All Android licenses accepted.

[!] Android Studio (version 4.1.0)
• Android Studio at C:\Program Files\Android\Android Studio
X Flutter plugin not installed; this adds Flutter specific functionality.
X Dart plugin not installed; this adds Dart specific functionality.
• Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)

[√] VS Code (version 1.54.2)
• VS Code at C:\Users***\AppData\Local\Programs\Microsoft VS Code
• Flutter extension version 3.20.0

[√] Connected device (1 available)
• Android SDK built for x86 (mobile) • emulator-5554 • android-x86 • Android 10 (API 29) (emulator)`

@darshankawar
Copy link
Member

@Octofoxy
I see that you are on older version of Stable. Latest is 2.0.2. I suggest you to upgrade to latest and try again to see if issue persists or not.
Thanks.

@Octofoxy
Copy link
Author

@darshankawar
I have updated to 2.0.2 (see below). The problem still persists.

Doctor summary (to see all details, run flutter doctor -v): [√] Flutter (Channel stable, 2.0.2, on Microsoft Windows [Version 10.0.19042.867], locale de-DE)

@Octofoxy
Copy link
Author

@darshankawar Are there any updates on this issue? It's stalling our project at the moment.

@Octofoxy
Copy link
Author

@darshankawar It has been almost two weeks since I last heard from you. Would you please give me a quick confirmation that this bug is being actively worked on?

@darshankawar
Copy link
Member

@Octofoxy
Sorry for getting late to this. I was able to replicate this issue, which seems to be pointing to Slider widgt which somehow isn't getting the width it needs and hence throwing the render exception as below:

console error log
======== Exception caught by rendering library =====================================================
The following assertion was thrown during paint():
'package:flutter/src/painting/text_painter.dart': Failed assertion: line 497 pos 12: '!_needsLayout': 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.md

The relevant error-causing widget was: 
  Slider file:///Users/dhs/Documents/NCFlutter/int_test_demo/lib/main.dart:141:20
When the exception was thrown, this was the stack: 
#2      TextPainter.width (package:flutter/src/painting/text_painter.dart:497:12)
#3      _PaddleSliderValueIndicatorPathPainter.paint (package:flutter/src/material/slider_theme.dart:3094:48)
#4      PaddleSliderValueIndicatorShape.paint (package:flutter/src/material/slider_theme.dart:2853:18)
#5      ThumbShape.paint (package:int_test_demo/main.dart:220:21)
#6      _RenderSlider.paint (package:flutter/src/material/slider.dart:1446:30)
...
The following RenderObject was being processed when the exception was fired: _RenderSlider#73ee8
...  parentData: <none> (can use size)
...  constraints: BoxConstraints(0.0<=w<=428.0, 0.0<=h<=Infinity)
...  size: Size(428.0, 48.0)
RenderObject: _RenderSlider#73ee8
  parentData: <none> (can use size)
  constraints: BoxConstraints(0.0<=w<=428.0, 0.0<=h<=Infinity)
  size: Size(428.0, 48.0)
====================================================================================================

======== Exception caught by rendering library =====================================================
'package:flutter/src/painting/text_painter.dart': Failed assertion: line 497 pos 12: '!_needsLayout': is not true.
The relevant error-causing widget was: 
  Slider file:///Users/dhs/Documents/NCFlutter/int_test_demo/lib/main.dart:169:26
====================================================================================================

======== Exception caught by rendering library =====================================================
'package:flutter/src/painting/text_painter.dart': Failed assertion: line 497 pos 12: '!_needsLayout': is not true.
The relevant error-causing widget was: 
  Slider file:///Users/dhs/Documents/NCFlutter/int_test_demo/lib/main.dart:169:26
====================================================================================================

======== Exception caught by rendering library =====================================================
'package:flutter/src/painting/text_painter.dart': Failed assertion: line 497 pos 12: '!_needsLayout': is not true.
The relevant error-causing widget was: 
  Slider file:///Users/dhs/Documents/NCFlutter/int_test_demo/lib/main.dart:169:26
====================================================================================================

======== Exception caught by rendering library =====================================================
'package:flutter/src/painting/text_painter.dart': Failed assertion: line 497 pos 12: '!_needsLayout': is not true.
The relevant error-causing widget was: 
  Slider file:///Users/dhs/Documents/NCFlutter/int_test_demo/lib/main.dart:169:26
====================================================================================================

======== Exception caught by rendering library =====================================================
The following assertion was thrown during paint():
'package:flutter/src/painting/text_painter.dart': Failed assertion: line 497 pos 12: '!_needsLayout': 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.md

The relevant error-causing widget was: 
  Slider file:///Users/dhs/Documents/NCFlutter/int_test_demo/lib/main.dart:141:20
When the exception was thrown, this was the stack: 
#2      TextPainter.width (package:flutter/src/painting/text_painter.dart:497:12)
#3      _PaddleSliderValueIndicatorPathPainter.paint (package:flutter/src/material/slider_theme.dart:3094:48)
#4      PaddleSliderValueIndicatorShape.paint (package:flutter/src/material/slider_theme.dart:2853:18)
#5      ThumbShape.paint (package:int_test_demo/main.dart:220:21)
#6      _RenderSlider.paint (package:flutter/src/material/slider.dart:1446:30)
...
The following RenderObject was being processed when the exception was fired: _RenderSlider#73ee8
...  parentData: <none> (can use size)
...  constraints: BoxConstraints(0.0<=w<=428.0, 0.0<=h<=Infinity)
...  size: Size(428.0, 48.0)
RenderObject: _RenderSlider#73ee8
  parentData: <none> (can use size)
  constraints: BoxConstraints(0.0<=w<=428.0, 0.0<=h<=Infinity)
  size: Size(428.0, 48.0)
====================================================================================================

======== Exception caught by rendering library =====================================================
'package:flutter/src/painting/text_painter.dart': Failed assertion: line 497 pos 12: '!_needsLayout': is not true.
The relevant error-causing widget was: 
  Slider file:///Users/dhs/Documents/NCFlutter/int_test_demo/lib/main.dart:169:26
====================================================================================================

======== Exception caught by rendering library =====================================================
'package:flutter/src/painting/text_painter.dart': Failed assertion: line 497 pos 12: '!_needsLayout': is not true.
The relevant error-causing widget was: 
  Slider file:///Users/dhs/Documents/NCFlutter/int_test_demo/lib/main.dart:169:26
====================================================================================================

======== Exception caught by rendering library =====================================================
'package:flutter/src/painting/text_painter.dart': Failed assertion: line 497 pos 12: '!_needsLayout': is not true.
The relevant error-causing widget was: 
  Slider file:///Users/dhs/Documents/NCFlutter/int_test_demo/lib/main.dart:169:26
====================================================================================================

======== Exception caught by rendering library =====================================================
'package:flutter/src/painting/text_painter.dart': Failed assertion: line 497 pos 12: '!_needsLayout': is not true.
The relevant error-causing widget was: 
  Slider file:///Users/dhs/Documents/NCFlutter/int_test_demo/lib/main.dart:169:26
====================================================================================================

full code sample
import 'package:flutter/material.dart';
//import 'multiSlider.dart';

void main() => runApp(const MyApp());

/// This is the main application widget.
class MyApp extends StatelessWidget {
  const MyApp({Key key}) : super(key: key);

  static const String _title = 'Flutter Code Sample';

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: _title,
      home: Scaffold(
        appBar: AppBar(title: const Text(_title)),
        body: const MyStatefulWidget(),
      ),
    );
  }
}

class MyStatefulWidget extends StatefulWidget {
  const MyStatefulWidget({Key key}) : super(key: key);

  @override
  _MyStatefulWidgetState createState() => _MyStatefulWidgetState();
}

class _MyStatefulWidgetState extends State<MyStatefulWidget> {
// Example settings for the multiSlider
  var masterSlider = {
    "showMasterSlider": true,
    "masterSliderText": "Dies ist der Master Slider Text",
    "sliderMin": 0.0,
    "sliderMax": 100.0,
    "sliderDivisions": 100,
    "currentMasterSliderValue": 100.0,
  };

  List subSlider = [
    {
      "sliderText": "Erster Subslider Text",
      "currentSliderValue": 0.0,
    },
    {
      "sliderText": "Zweiter Subslider Text",
      "currentSliderValue": 0.0,
    },
    {
      "sliderText": "Dritter Subslider Text",
      "currentSliderValue": 0.0,
    },
    {
      "sliderText": "Vierter Subslider Text",
      "currentSliderValue": 0.0,
    },
  ];

  @override
  Widget build(BuildContext context) {
    return Column(
      children: [
        MultiSlider(masterSlider, subSlider),
      ],
    );
  }
}

class MultiSlider extends StatefulWidget {
  final Map masterSlider;
  final List subSlider;

  MultiSlider(this.masterSlider, this.subSlider);

  @override
  _MultiSliderState createState() => _MultiSliderState();
}

class _MultiSliderState extends State<MultiSlider> {
  //sums all subSliders EXCEPT the one given as an argument.
  //sums ALL subSliders if given null as an argument
  double sumOfAllSubSlidersExcept(currentSubSlider) {
    if (currentSubSlider != null) {
      return ((widget.subSlider.map((m) => m['currentSliderValue']).toList())
          .reduce((value, element) => value   element)) -
          currentSubSlider["currentSliderValue"];
    } else {
      return ((widget.subSlider.map((m) => m['currentSliderValue']).toList())
          .reduce((value, element) => value   element));
    }
  }

// required for subSlider-generation
  dontBeZero(valueToCheck) {
    if (valueToCheck == 0) {
      return 1;
    } else {
      return valueToCheck;
    }
  }

// Used by the subSliders
  dontOverstep(valueToCheck, checkAgainst) {
    if (valueToCheck > checkAgainst) {
      return checkAgainst;
    } else {
      return valueToCheck;
    }
  }

// Used by the masterSlider
  dontUnderstep(valueToCheck, checkAgainst) {
    if (valueToCheck < checkAgainst) {
      return checkAgainst;
    } else {
      return valueToCheck;
    }
  }

  @override
  Widget build(BuildContext context) {
    return Column(
      children: <Widget>[
        // Those Texts are for debug only.
        // Text("Value of masterSlider:"  
        //    widget.masterSlider["currentMasterSliderValue"].toString()),
        // Text("Sum of all subSliders:"  
        //    (sumOfAllSubSlidersExcept(null)).toString()),

        // This builds the Title of the masterSlider
        Text(widget.masterSlider["masterSliderText"]),
        // This builds the masterSlider, if "showMasterSlider = true"
        if (widget.masterSlider["showMasterSlider"])
          SliderTheme(
            data: SliderThemeData(
              showValueIndicator: ShowValueIndicator.never,
              thumbShape: ThumbShape(),
            ),
            child: Slider(
              min: widget.masterSlider["sliderMin"],
              max: widget.masterSlider["sliderMax"],
              divisions: widget.masterSlider["sliderDivisions"],
              value: widget.masterSlider["currentMasterSliderValue"],
              onChanged: (double value) {
                setState(() {
                  widget.masterSlider["currentMasterSliderValue"] =
                      dontUnderstep(value, sumOfAllSubSlidersExcept(null));
                });
              },
            ),
          )
        else
          Container(),

        // This builds one subSlider for each item in the subSlider-List.
        ...widget.subSlider.map((item) {
          return Padding(
            padding: EdgeInsets.all(10.0),
            child: Column(
              children: [
                Text(item["sliderText"]),
                SliderTheme(
                  data: SliderThemeData(
                    showValueIndicator: ShowValueIndicator.never,
                    thumbShape: ThumbShape(),
                  ),
                  child: Slider(
                    // Subsliders inherit their layout from the masterSlider
                    min: widget.masterSlider["sliderMin"],
                    max: widget.masterSlider["sliderMax"],
                    divisions: widget.masterSlider["sliderDivisions"],
                    value: item["currentSliderValue"],
                    onChanged: (double value) {
                      setState(() {
                        // This makes sure that any subSlider can't be increased beyond
                        // the value of the masterSlider minus the sum of all other subSliders.
                        item["currentSliderValue"] = dontOverstep(
                            value,
                            (widget.masterSlider["currentMasterSliderValue"] -
                                sumOfAllSubSlidersExcept(item)));
                      });
                    },
                  ),
                ),
              ],
            ),
          );
        })
      ],
    );
  }
}

class ThumbShape extends RoundSliderThumbShape {
  final _indicatorShape = const PaddleSliderValueIndicatorShape();

  const ThumbShape();

  @override
  void paint(PaintingContext context, Offset center,
      {Animation<double> activationAnimation,
        Animation<double> enableAnimation,
        bool isDiscrete,
        TextPainter labelPainter,
        RenderBox parentBox,
        SliderThemeData sliderTheme,
        TextDirection textDirection,
        double textScaleFactor,
        double value,
        Size sizeWithOverflow}) {
    super.paint(context, center,
        activationAnimation: activationAnimation,
        enableAnimation: enableAnimation,
        sliderTheme: sliderTheme,
        value: value,
        textScaleFactor: textScaleFactor,
        sizeWithOverflow: sizeWithOverflow);
    _indicatorShape.paint(
      context,
      center,
      activationAnimation: const AlwaysStoppedAnimation(1),
      enableAnimation: enableAnimation,
      labelPainter: labelPainter,
      parentBox: parentBox,
      sliderTheme: sliderTheme,
      value: value,
// der TextScaleFactor verändert die Größe der "Tooltip"-Blase
      textScaleFactor: 0.6,
      sizeWithOverflow: sizeWithOverflow,
    );
  }
}




flutter doctor -v
[✓] Flutter (Channel master, 2.1.0-13.0.pre.319, on Mac OS X 10.15.4 19E2269
    darwin-x64, locale en-GB)
    • Flutter version 2.1.0-13.0.pre.319 at
      /Users/dhs/documents/Fluttersdk/flutter
    • Framework revision 430626d0f3 (48 minutes ago), 2021-03-29 21:44:03 -0700
    • Engine revision 4c6abc1e06
    • Dart version 2.13.0 (build 2.13.0-172.0.dev)

[!] Xcode - develop for iOS and macOS
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.3, Build version 12C33
    ! CocoaPods 1.9.3 out of date (1.10.0 is recommended).
        CocoaPods is used to retrieve the iOS and macOS platform side's plugin
        code that responds to your plugin usage on the Dart side.
        Without CocoaPods, plugins will not work on iOS or macOS.
        For more info, see https://flutter.dev/platform-plugins
      To upgrade see
      https://guides.cocoapods.org/using/getting-started.html#installation for
      instructions.

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] VS Code (version 1.54.3)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.20.0

[✓] Connected device (3 available)
    • iPhone 12 Pro Max (mobile) • A5473606-0213-4FD8-BA16-553433949729 • ios
      • com.apple.CoreSimulator.SimRuntime.iOS-14-3 (simulator)
    • macOS (desktop)            • macos                                •
      darwin-x64     • Mac OS X 10.15.4 19E2269 darwin-x64
    • Chrome (web)               • chrome                               •
      web-javascript • Google Chrome 89.0.4389.90

! Doctor found issues in 1 category.

Keeping this open for further analysis.

@darshankawar darshankawar added f: material design flutter/packages/flutter/material repository. found in release: 2.1 Found to occur in 2.1 framework flutter/packages/flutter repository. See also f: labels. has reproducible steps The issue has been confirmed reproducible and is ready to work on a: error message Error messages from the Flutter framework and removed in triage Presently being triaged by the triage team waiting for customer response The Flutter team cannot make further progress on this issue until the original reporter responds labels Mar 30, 2021
@bernaferrari
Copy link
Contributor

bernaferrari commented Jun 7, 2021

I'm getting the same with Text. No Slider here.

[✓] Flutter (Channel beta, 2.2.0, on macOS 11.4 20F71 darwin-x64, locale en-BR)
    • Flutter version 2.2.0 at /usr/local/flutter
    • Framework revision b22742018b (3 weeks ago), 2021-05-14 19:12:57 -0700
    • Engine revision a9d88a4d18
    • Dart version 2.13.0
'package:flutter/src/painting/text_painter.dart': Failed assertion: line 881 pos 12: '!_needsLayout': is not true.
      #0      _AssertionError._doThrowNew (dart:core-patch/errors_patch.dart:46:39)
      #1      _AssertionError._throwNew (dart:core-patch/errors_patch.dart:36:5)
      #2      TextPainter.getPositionForOffset (package:flutter/src/painting/text_painter.dart:881:12)
      #3      RenderParagraph.hitTestChildren (package:flutter/src/rendering/paragraph.dart:456:52)
      #4      RenderBox.hitTest (package:flutter/src/rendering/box.dart:2414:11)
      #5      RenderBoxContainerDefaultsMixin.defaultHitTestChildren.<anonymous closure> (package:flutter/src/rendering/box.dart:2775:25)
      #6      BoxHitTestResult.addWithPaintOffset (package:flutter/src/rendering/box.dart:787:31)
      #7      RenderBoxContainerDefaultsMixin.defaultHitTestChildren (package:flutter/src/rendering/box.dart:2770:33)
      #8      RenderFlex.hitTestChildren (package:flutter/src/rendering/flex.dart:1072:12)
      #9      RenderBox.hitTest (package:flutter/src/rendering/box.dart:2414:11)
      #10     RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:131:19)
      #11     RenderBox.hitTest (package:flutter/src/rendering/box.dart:2414:11)
      #12     RenderShiftedBox.hitTestChildren.<anonymous closure> (package:flutter/src/rendering/shifted_box.dart:92:25)
      #13     BoxHitTestResult.addWithPaintOffset (package:flutter/src/rendering/box.dart:787:31)
      #14     RenderShiftedBox.hitTestChildren (package:flutter/src/rendering/shifted_box.dart:87:21)
      #15     RenderBox.hitTest (package:flutter/src/rendering/box.dart:2414:11)
      #16     RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:131:19)
      #17     RenderBox.hitTest (package:flutter/src/rendering/box.dart:2414:11)
      #18     RenderShiftedBox.hitTestChildren.<anonymous closure> (package:flutter/src/rendering/shifted_box.dart:92:25)
      #19     BoxHitTestResult.addWithPaintOffset (package:flutter/src/rendering/box.dart:787:31)
      #20     RenderShiftedBox.hitTestChildren (package:flutter/src/rendering/shifted_box.dart:87:21)
      #21     RenderBox.hitTest (package:flutter/src/rendering/box.dart:2414:11)
      #22     RenderShiftedBox.hitTestChildren.<anonymous closure> (package:flutter/src/rendering/shifted_box.dart:92:25)
      #23     BoxHitTestResult.addWithPaintOffset (package:flutter/src/rendering/box.dart:787:31)
      #24     RenderShiftedBox.hitTestChildren (package:flutter/src/rendering/shifted_box.dart:87:21)
      #25     RenderBox.hitTest (package:flutter/src/rendering/box.dart:2414:11)
      #26     RenderBoxContainerDefaultsMixin.defaultHitTestChildren.<anonymous closure> (package:flutter/src/rendering/box.dart:2775:25)
      #27     BoxHitTestResult.addWithPaintOffset (package:flutter/src/rendering/box.dart:787:31)
      #28     RenderBoxContainerDefaultsMixin.defaultHitTestChildren (package:flutter/src/rendering/box.dart:2770:33)
      #29     RenderCustomMultiChildLayoutBox.hitTestChildren (package:flutter/src/rendering/custom_layout.dart:414:12)
      #30     RenderBox.hitTest (package:flutter/src/rendering/box.dart:2414:11)
      #31     RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:131:19)
      #32     RenderBox.hitTest (package:flutter/src/rendering/box.dart:2414:11)
      #33     RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:131:19)
      #34     RenderBox.hitTest (package:flutter/src/rendering/box.dart:2414:11)
      #35     RenderPhysicalModel.hitTest (package:flutter/src/rendering/proxy_box.dart:1889:18)
      #36     RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:131:19)
      #37     RenderBox.hitTest (package:flutter/src/rendering/box.dart:2414:11)
      #38     RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:131:19)
      #39     RenderBox.hitTest (package:flutter/src/rendering/box.dart:2414:11)
      #40     RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:131:19)
      #41     RenderBox.hitTest (package:flutter/src/rendering/box.dart:2414:11)
      #42     RenderIgnorePointer.hitTest (package:flutter/src/rendering/proxy_box.dart:3257:31)
      #43     RenderBoxContainerDefaultsMixin.defaultHitTestChildren.<anonymous closure> (package:flutter/src/rendering/box.dart:2775:25)
      #44     BoxHitTestResult.addWithPaintOffset (package:flutter/src/rendering/box.dart:787:31)
      #45     RenderBoxContainerDefaultsMixin.defaultHitTestChildren (package:flutter/src/rendering/box.dart:2770:33)
      #46     RenderStack.hitTestChildren (package:flutter/src/rendering/stack.dart:620:12)
      #47     RenderBox.hitTest (package:flutter/src/rendering/box.dart:2414:11)
      #48     RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:131:19)
      #49     RenderBox.hitTest (package:flutter/src/rendering/box.dart:2414:11)
      #50     RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:131:19)
      #51     RenderFractionalTranslation.hitTestChildren.<anonymous closure> (package:flutter/src/rendering/proxy_box.dart:2714:22)
      #52     BoxHitTestResult.addWithPaintOffset (package:flutter/src/rendering/box.dart:787:31)
      #53     RenderFractionalTranslation.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:2708:19)
      #54     RenderFractionalTranslation.hitTest (package:flutter/src/rendering/proxy_box.dart:2694:12)
      #55     RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:131:19)
      #56     RenderFractionalTranslation.hitTestChildren.<anonymous closure> (package:flutter/src/rendering/proxy_box.dart:2714:22)
      #57     BoxHitTestResult.addWithPaintOffset (package:flutter/src/rendering/box.dart:787:31)
      #58     RenderFractionalTranslation.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:2708:19)
      #59     RenderFractionalTranslation.hitTest (package:flutter/src/rendering/proxy_box.dart:2694:12)
      #60     RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:131:19)
      #61     RenderBox.hitTest (package:flutter/src/rendering/box.dart:2414:11)
      #62     RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:131:19)
      #63     RenderBox.hitTest (package:flutter/src/rendering/box.dart:2414:11)
      #64     RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:131:19)
      #65     RenderBox.hitTest (package:flutter/src/rendering/box.dart:2414:11)
      #66     RenderOffstage.hitTest (package:flutter/src/rendering/proxy_box.dart:3376:31)
      #67     RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:131:19)
      #68     RenderBox.hitTest (package:flutter/src/rendering/box.dart:2414:11)
      #69     _RenderTheatre.hitTestChildren.<anonymous closure> (package:flutter/src/widgets/overlay.dart:765:25)
      #70     BoxHitTestResult.addWithPaintOffset (package:flutter/src/rendering/box.dart:787:31)
      #71     _RenderTheatre.hitTestChildren (package:flutter/src/widgets/overlay.dart:760:33)
      #72     RenderBox.hitTest (package:flutter/src/rendering/box.dart:2414:11)
      #73     RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:131:19)
      #74     RenderBox.hitTest (package:flutter/src/rendering/box.dart:2414:11)
      #75     RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:131:19)
      #76     RenderBox.hitTest (package:flutter/src/rendering/box.dart:2414:11)
      #77     RenderAbsorbPointer.hitTest (package:flutter/src/rendering/proxy_box.dart:3474:17)
      #78     RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:131:19)
      #79     RenderProxyBoxWithHitTestBehavior.hitTest (package:flutter/src/rendering/proxy_box.dart:178:19)
      #80     RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:131:19)
      #81     RenderCustomPaint.hitTestChildren (package:flutter/src/rendering/custom_paint.dart:535:18)
      #82     RenderBox.hitTest (package:flutter/src/rendering/box.dart:2414:11)
      #83     RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:131:19)
      #84     RenderBox.hitTest (package:flutter/src/rendering/box.dart:2414:11)
      #85     RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:131:19)
      #86     RenderBox.hitTest (package:flutter/src/rendering/box.dart:2414:11)
      #87     RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:131:19)
      #88     RenderBox.hitTest (package:flutter/src/rendering/box.dart:2414:11)
      #89     RenderView.hitTest (package:flutter/src/rendering/view.dart:173:14)
      #90     RendererBinding.hitTest (package:flutter/src/rendering/binding.dart:490:16)
      #91     GestureBinding._handlePointerEventImmediately (package:flutter/src/gestures/binding.dart:346:7)
      #92     GestureBinding.handlePointerEvent (package:flutter/src/gestures/binding.dart:338:5)
      #93     GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:296:7)
      #94     GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:279:7)
      #95     _rootRunUnary (dart:async/zone.dart:1370:13)
      #96     _CustomZone.runUnary (dart:async/zone.dart:1265:19)
      #97     _CustomZone.runUnaryGuarded (dart:async/zone.dart:1170:7)
      #98     _invoke1 (dart:ui/hooks.dart:182:10)
      #99     PlatformDispatcher._dispatchPointerDataPacket (dart:ui/platform_dispatcher.dart:282:7)
      #100    _dispatchPointerDataPacket (dart:ui/hooks.dart:96:31)

@94wogus
Copy link

94wogus commented Jul 3, 2021

same problem here

flutter doctor -v
[✓] Flutter (Channel stable, 2.2.2, on macOS 11.4 20F71 darwin-arm, locale ko-KR)
    • Flutter version 2.2.2 at /Users/wogus/flutter
    • Framework revision d79295af24 (3 weeks ago), 2021-06-11 08:56:01 -0700
    • Engine revision 91c9fc8fe0
    • Dart version 2.13.3
[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at /Users/wogus/Library/Android/sdk
    • Platform android-30, build-tools 30.0.3
    • Java binary at: /Library/Java/JavaVirtualMachines/jdk-11.0.11.jdk/Contents/Home/bin/java
    • Java version Java(TM) SE Runtime Environment 18.9 (build 11.0.11 9-LTS-194)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.5.1, Build version 12E507
    • CocoaPods version 1.10.1

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[!] Android Studio
    • Android Studio at /Applications/Android Studio Preview.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
    ✗ Unable to find bundled Java version. => this is android studio bug
    • Try updating or re-installing Android Studio.

[✓] VS Code (version 1.57.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.23.0

[✓] Connected device (2 available)
    • LM G900N (mobile) • LMG900Nc1eda018 • android-arm64  • Android 11 (API 30)
    • Chrome (web)      • chrome          • web-javascript • Google Chrome 91.0.4472.114

logs

E/flutter (26175): [ERROR:flutter/lib/ui/ui_dart_state.cc(199)] Unhandled Exception: 'package:flutter/src/painting/text_painter.dart': Failed assertion: line 881 pos 12: '!_needsLayout': is not true.
E/flutter (26175): #0      _AssertionError._doThrowNew (dart:core-patch/errors_patch.dart:46:39)
E/flutter (26175): #1      _AssertionError._throwNew (dart:core-patch/errors_patch.dart:36:5)
E/flutter (26175): #2      TextPainter.getPositionForOffset (package:flutter/src/painting/text_painter.dart:881:12)
E/flutter (26175): #3      RenderParagraph.hitTestChildren (package:flutter/src/rendering/paragraph.dart:456:52)
E/flutter (26175): #4      RenderBox.hitTest (package:flutter/src/rendering/box.dart:2414:11)
E/flutter (26175): #5      RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:131:19)
E/flutter (26175): #6      RenderTransform.hitTestChildren.<anonymous closure> (package:flutter/src/rendering/proxy_box.dart:2347:22)
E/flutter (26175): #7      BoxHitTestResult.addWithRawTransform (package:flutter/src/rendering/box.dart:826:31)
E/flutter (26175): #8      BoxHitTestResult.addWithPaintTransform (package:flutter/src/rendering/box.dart:751:12)
E/flutter (26175): #9      RenderTransform.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:2343:19)
E/flutter (26175): #10     RenderTransform.hitTest (package:flutter/src/rendering/proxy_box.dart:2337:12)
E/flutter (26175): #11     RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:131:19)
E/flutter (26175): #12     RenderBox.hitTest (package:flutter/src/rendering/box.dart:2414:11)
E/flutter (26175): #13     RenderShiftedBox.hitTestChildren.<anonymous closure> (package:flutter/src/rendering/shifted_box.dart:92:25)
E/flutter (26175): #14     BoxHitTestResult.addWithPaintOffset (package:flutter/src/rendering/box.dart:787:31)
E/flutter (26175): #15     RenderShiftedBox.hitTestChildren (package:flutter/src/rendering/shifted_box.dart:87:21)
E/flutter (26175): #16     RenderBox.hitTest (package:flutter/src/rendering/box.dart:2414:11)
E/flutter (26175): #17     RenderBoxContainerDefaultsMixin.defaultHitTestChildren.<anonymous closure> (package:flutter/src/rendering/box.dart:2775:25)
E/flutter (26175): #18     BoxHitTestResult.addWithPaintOffset (package:flutter/src/rendering/box.dart:787:31)
E/flutter (26175): #19     RenderBoxContainerDefaultsMixin.defaultHitTestChildren (package:flutter/src/rendering/box.dart:2770:33)
E/flutter (26175): #20     RenderFlex.hitTestChildren (package:flutter/src/rendering/flex.dart:1072:12)
E/flutter (26175): #21     RenderBox.hitTest (package:flutter/src/rendering/box.dart:2414:11)
E/flutter (26175): #22     RenderShiftedBox.hitTestChildren.<anonymous closure> (package:flutter/src/rendering/shifted_box.dart:92:25)
E/flutter (26175): #23     BoxHitTestResult.addWithPaintOffset (package:flutter/src/rendering/box.dart:787:31)
E/flutter (26175): #24     RenderShiftedBox.hitTestChildren (package:flutter/src/rendering/shifted_box.dart:87:21)
E/flutter (26175): #25     RenderBox.hitTest (package:flutter/src/rendering/box.dart:2414:11)
E/flutter (26175): #26     RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:131:19)
E/flutter (26175): #27     RenderProxyBoxWithHitTestBehavior.hitTest (package:flutter/src/rendering/proxy_box.dart:178:19)
E/flutter (26175): #28     RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:131:19)
E/flutter (26175): #29     RenderBox.hitTest (package:flutter/src/rendering/box.dart:2414:11)
E/flutter (26175): #30     RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:131:19)
E/flutter (26175): #31     RenderBox.hitTest (package:flutter/src/rendering/box.dart:2414:11)
E/flutter (26175): #32     RenderMouseRegion.hitTest (package:flutter/src/rendering/proxy_box.dart:2905:18)
E/flutter (26175): #33     RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:131:19)
E/flutter (26175): #34     RenderBox.hitTest (package:flutter/src/rendering/box.dart:2414:11)
E/flutter (26175): #35     RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:131:19)
E/flutter (26175): #36     RenderBox.hitTest (package:flutter/src/rendering/box.dart:2414:11)
E/flutter (26175): #37     RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:131:19)
E/flutter (26175): #38     RenderProxyBoxWithHitTestBehavior.hitTest (package:flutter/src/rendering/proxy_box.dart:178:19)
E/flutter (26175): #39     RenderBoxContainerDefaultsMixin.defaultHitTestChildren.<anonymous closure> (package:flutter/src/rendering/box.dart:2775:25)
E/flutter (26175): #40     BoxHitTestResult.addWithPaintOffset (package:flutter/src/rendering/box.dart:787:31)
E/flutter (26175): #41     RenderBoxContainerDefaultsMixin.defaultHitTestChildren (package:flutter/src/rendering/box.dart:2770:33)
E/flutter (26175): #42     RenderStack.hitTestChildren (package:flutter/src/rendering/stack.dart:620:12)
E/flutter (26175): #43     RenderBox.hitTest (package:flutter/src/rendering/box.dart:2414:11)
E/flutter (26175): #44     RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:131:19)
E/flutter (26175): #45     RenderBox.hitTest (package:flutter/src/rendering/box.dart:2414:11)
E/flutter (26175): #46     RenderBoxContainerDefaultsMixin.defaultHitTestChildren.<anonymous closure> (package:flutter/src/rendering/box.dart:2775:25)
E/flutter (26175): #47     BoxHitTestResult.addWithPaintOffset (package:flutter/src/rendering/box.dart:787:31)
E/flutter (26175): #48     RenderBoxContainerDefaultsMixin.defaultHitTestChildren (package:flutter/src/rendering/box.dart:2770:33)
E/flutter (26175): #49     RenderFlex.hitTestChildren (package:flutter/src/rendering/flex.dart:1072:12)
E/flutter (26175): #50     RenderBox.hitTest (package:flutter/src/rendering/box.dart:2414:11)
E/flutter (26175): #51     RenderShiftedBox.hitTestChildren.<anonymous closure> (package:flutter/src/rendering/shifted_box.dart:92:25)
E/flutter (26175): #52     BoxHitTestResult.addWithPaintOffset (package:flutter/src/rendering/box.dart:787:31)
E/flutter (26175): #53     RenderShiftedBox.hitTestChildren (package:flutter/src/rendering/shifted_box.dart:87:21)
E/flutter (26175): #54     RenderBox.hitTest (package:flutter/src/rendering/box.dart:2414:11)
E/flutter (26175): #55     RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:131:19)
E/flutter (26175): #56     RenderBox.hitTest (package:flutter/src/rendering/box.dart:2414:11)
E/flutter (26175): #57     RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:131:19)
E/flutter (26175): #58     RenderCustomPaint.hitTestChildren (package:flutter/src/rendering/custom_paint.dart:535:18)
E/flutter (26175): #59     RenderBox.hitTest (package:flutter/src/rendering/box.dart:2414:11)
E/flutter (26175): #60     RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:131:19)
E/flutter (26175): #61     RenderCustomPaint.hitTestChildren (package:flutter/src/rendering/custom_paint.dart:535:18)
E/flutter (26175): #62     RenderBox.hitTest (package:flutter/src/rendering/box.dart:2414:11)
E/flutter (26175): #63     RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:131:19)
E/flutter (26175): #64     RenderBox.hitTest (package:flutter/src/rendering/box.dart:2414:11)
E/flutter (26175): #65     RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:131:19)
E/flutter (26175): #66     RenderBox.hitTest (package:flutter/src/rendering/box.dart:2414:11)
E/flutter (26175): #67     RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:131:19)
E/flutter (26175): #68     RenderBox.hitTest (package:flutter/src/rendering/box.dart:2414:11)
E/flutter (26175): #69     RenderPhysicalModel.hitTest (package:flutter/src/rendering/proxy_box.dart:1889:18)
E/flutter (26175): #70     RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:131:19)
E/flutter (26175): #71     RenderBox.hitTest (package:flutter/src/rendering/box.dart:2414:11)
E/flutter (26175): #72     RenderBoxContainerDefaultsMixin.defaultHitTestChildren.<anonymous closure> (package:flutter/src/rendering/box.dart:2775:25)
E/flutter (26175): #73     BoxHitTestResult.addWithPaintOffset (package:flutter/src/rendering/box.dart:787:31)
E/flutter (26175): #74     RenderBoxContainerDefaultsMixin.defaultHitTestChildren (package:flutter/src/rendering/box.dart:2770:33)
E/flutter (26175): #75     RenderCustomMultiChildLayoutBox.hitTestChildren (package:flutter/src/rendering/custom_layout.dart:414:12)
E/flutter (26175): #76     RenderBox.hitTest (package:flutter/src/rendering/box.dart:2414:11)
E/flutter (26175): #77     RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:131:19)
E/flutter (26175): #78     RenderBox.hitTest (package:flutter/src/rendering/box.dart:2414:11)
E/flutter (26175): #79     RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:131:19)
E/flutter (26175): #80     RenderBox.hitTest (package:flutter/src/rendering/box.dart:2414:11)
E/flutter (26175): #81     RenderPhysicalModel.hitTest (package:flutter/src/rendering/proxy_box.dart:1889:18)
E/flutter (26175): #82     RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:131:19)
E/flutter (26175): #83     RenderBox.hitTest (package:flutter/src/rendering/box.dart:2414:11)
E/flutter (26175): #84     RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:131:19)
E/flutter (26175): #85     RenderBox.hitTest (package:flutter/src/rendering/box.dart:2414:11)
E/flutter (26175): #86     RenderIgnorePointer.hitTest (package:flutter/src/rendering/proxy_box.dart:3257:31)
E/flutter (26175): #87     RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:131:19)
E/flutter (26175): #88     RenderBox.hitTest (package:flutter/src/rendering/box.dart:2414:11)
E/flutter (26175): #89     RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:131:19)
E/flutter (26175): #90     RenderBox.hitTest (package:flutter/src/rendering/box.dart:2414:11)
E/flutter (26175): #91     RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:131:19)
E/flutter (26175): #92     RenderBox.hitTest (package:flutter/src/rendering/box.dart:2414:11)
E/flutter (26175): #93     RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:131:19)
E/flutter (26175): #94     RenderBox.hitTest (package:flutter/src/rendering/box.dart:2414:11)
E/flutter (26175): #95     RenderOffstage.hitTest (package:flutter/src/rendering/proxy_box.dart:3376:31)
E/flutter (26175): #96     RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:131:19)
E/flutter (26175): #97     RenderBox.hitTest (package:flutter/src/rendering/box.dart:2414:11)
E/flutter (26175): #98     _RenderTheatre.hitTestChildren.<anonymous closure> (package:flutter/src/widgets/overlay.dart:765:25)
E/flutter (26175): #99     BoxHitTestResult.addWithPaintOffset (package:flutter/src/rendering/box.dart:787:31)
E/flutter (26175): #100    _RenderTheatre.hitTestChildren (package:flutter/src/widgets/overlay.dart:760:33)
E/flutter (26175): #101    RenderBox.hitTest (package:flutter/src/rendering/box.dart:2414:11)
E/flutter (26175): #102    RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:131:19)
E/flutter (26175): #103    RenderBox.hitTest (package:flutter/src/rendering/box.dart:2414:11)
E/flutter (26175): #104    RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:131:19)
E/flutter (26175): #105    RenderBox.hitTest (package:flutter/src/rendering/box.dart:2414:11)
E/flutter (26175): #106    RenderAbsorbPointer.hitTest (package:flutter/src/rendering/proxy_box.dart:3474:17)
E/flutter (26175): #107    RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:131:19)
E/flutter (26175): #108    RenderProxyBoxWithHitTestBehavior.hitTest (package:flutter/src/rendering/proxy_box.dart:178:19)
E/flutter (26175): #109    RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:131:19)
E/flutter (26175): #110    RenderCustomPaint.hitTestChildren (package:flutter/src/rendering/custom_paint.dart:535:18)
E/flutter (26175): #111    RenderBox.hitTest (package:flutter/src/rendering/box.dart:2414:11)
E/flutter (26175): #112    RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:131:19)
E/flutter (26175): #113    RenderBox.hitTest (package:flutter/src/rendering/box.dart:2414:11)
E/flutter (26175): #114    RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:131:19)
E/flutter (26175): #115    RenderBox.hitTest (package:flutter/src/rendering/box.dart:2414:11)
E/flutter (26175): #116    RenderProxyBoxMixin.hitTestChildren (package:flutter/src/rendering/proxy_box.dart:131:19)
E/flutter (26175): #117    RenderBox.hitTest (package:flutter/src/rendering/box.dart:2414:11)
E/flutter (26175): #118    RenderView.hitTest (package:flutter/src/rendering/view.dart:173:14)
E/flutter (26175): #119    RendererBinding.hitTest (package:flutter/src/rendering/binding.dart:490:16)
E/flutter (26175): #120    GestureBinding._handlePointerEventImmediately (package:flutter/src/gestures/binding.dart:346:7)
E/flutter (26175): #121    GestureBinding.handlePointerEvent (package:flutter/src/gestures/binding.dart:338:5)
E/flutter (26175): #122    GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:296:7)
E/flutter (26175): #123    GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:279:7)
E/flutter (26175): #124    _rootRunUnary (dart:async/zone.dart:1370:13)
E/flutter (26175): #125    _CustomZone.runUnary (dart:async/zone.dart:1265:19)
E/flutter (26175): #126    _CustomZone.runUnaryGuarded (dart:async/zone.dart:1170:7)
E/flutter (26175): #127    _invoke1 (dart:ui/hooks.dart:182:10)
E/flutter (26175): #128    PlatformDispatcher._dispatchPointerDataPacket (dart:ui/platform_dispatcher.dart:282:7)
E/flutter (26175): #129    _dispatchPointerDataPacket (dart:ui/hooks.dart:96:31)
E/flutter (26175): 

This bug occurs when changing tabs with bottom navigation on scaffold widgets.
It happens once in a while when changing a tab, and in this case, the tab cannot be changed.
Below is that code.

homeScreen code

class HomePage extends StatefulWidget {
  const HomePage({Key? key}) : super(key: key);

  @override
  _HomePageState createState() => _HomePageState();
}

class _HomePageState extends State<HomePage> {
  @override
  void initState() {
    super.initState();
    WidgetsBinding.instance!.addPostFrameCallback((timeStamp) {
      Provider.of<InvestPageProvider>(context, listen: false).init();
      Provider.of<SearchPageProvider>(context, listen: false).init();
    });
  }

  @override
  Widget build(BuildContext context) {
    return Selector<GeneralProvider, HomeTab>(
      selector: (_, provider) => provider.homeTab,
      builder: (_, homeTab, __) => ScrolledScaffold(
        key: PageStorageKey(homeTab.label),
        option: homeTab.headerOption,
        bodyChild: homeTab.page,
        bottomHit: homeTab.bottomHit(context),
        bottomNavigationBar: BottomNavigationBar(
          type: BottomNavigationBarType.fixed,
          backgroundColor: Colors.white,
          selectedItemColor: Colors.white,
          unselectedItemColor: Colors.white.withOpacity(.60),
          showSelectedLabels: false,
          showUnselectedLabels: false,
          selectedFontSize: 14,
          unselectedFontSize: 14,
          currentIndex: homeTab.index, //현재 선택된 Index
          onTap: (int index) => Provider.of<GeneralProvider>(
            context,
            listen: false,
          ).homeTab = mapHomeTab(index),
          items: HomeTab.values
              .map(
                (HomeTab tab) => BottomNavigationBarItem(
                  icon: SvgPicture.asset(
                    tab.icon(homeTab),
                    height: 32,
                    width: 32,
                    fit: BoxFit.fitWidth,
                  ),
                  label: tab.label,
                ),
              )
              .toList(),
        ),
      ),
    );
  }
}

@94wogus
Copy link

94wogus commented Jul 3, 2021

When I clear the PageStorageKey the bug doesn't appear.

@flutter-triage-bot flutter-triage-bot bot added multiteam-retriage-candidate team-design Owned by Design Languages team triaged-design Triaged by Design Languages team labels Jul 8, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
a: error message Error messages from the Flutter framework f: material design flutter/packages/flutter/material repository. found in release: 2.1 Found to occur in 2.1 framework flutter/packages/flutter repository. See also f: labels. has reproducible steps The issue has been confirmed reproducible and is ready to work on team-design Owned by Design Languages team triaged-design Triaged by Design Languages team
Projects
None yet
Development

No branches or pull requests

6 participants
@bernaferrari @Hixie @Octofoxy @94wogus @darshankawar and others