Skip to content
This repository has been archived by the owner on Jan 9, 2023. It is now read-only.

Using Flutter charts examples throws exceptions #30

Closed
ShahinUsif opened this issue Apr 3, 2018 · 2 comments
Closed

Using Flutter charts examples throws exceptions #30

ShahinUsif opened this issue Apr 3, 2018 · 2 comments

Comments

@ShahinUsif
Copy link

ShahinUsif commented Apr 3, 2018

I get exceptions when I use this library. I tried SimplePieChart, DonutChart from the samples here and on the following link:

Examples

class ChartsOverviewWidget extends StatelessWidget {

  @override
  Widget build(BuildContext context) {
    return
      new SingleChildScrollView(
        child: new Column(
          crossAxisAlignment: CrossAxisAlignment.center,
          mainAxisAlignment: MainAxisAlignment.center,
          //mainAxisSize: MainAxisSize.max,
          children: <Widget>[
            new SimplePieChart.withSampleData(),
            new SimplePieChart.withSampleData(),
          ],
        ),
      );
  }

}

Here's the exception i get


══╡ EXCEPTION CAUGHT BY RENDERING LIBRARY ╞═════════════════════════════════════════════════════════
The following assertion was thrown during performLayout():
RenderCustomMultiChildLayoutBox object was given an infinite size during layout.
This probably means that it is a render object that tries to be as big as possible, but it was put
inside another render object that allows its children to pick their own size.
The nearest ancestor providing an unbounded height constraint is:
_RenderSingleChildViewport#83d7c NEEDS-LAYOUT NEEDS-PAINT
creator: _SingleChildViewport ← _ScrollableScope ← IgnorePointer-[GlobalKey#f0129] ← Semantics ←
Listener ← _GestureSemantics ←
RawGestureDetector-[LabeledGlobalKey<RawGestureDetectorState>#1c5b8] ←
_ExcludableScrollSemantics-[GlobalKey#261a4] ← Scrollable ← PrimaryScrollController ←
SingleChildScrollView ← ChartsOverviewWidget ← ⋯
parentData: <none> (can use size)
constraints: BoxConstraints(w=375.0, h=664.0)
size: MISSING
The constraints that applied to the RenderCustomMultiChildLayoutBox were:
BoxConstraints(0.0<=w<=375.0, 0.0<=h<=Infinity)
The exact size it was given was:
Size(375.0, Infinity)
See https://flutter.io/layout/ for more information.

When the exception was thrown, this was the stack:
#0      RenderBox.debugAssertDoesMeetConstraints.<anonymous closure> (package:flutter/src/rendering/box.dart:1698:9)
#1      RenderBox.debugAssertDoesMeetConstraints (package:flutter/src/rendering/box.dart:1772:6)
#2      RenderBox.size=.<anonymous closure> (package:flutter/src/rendering/box.dart:1507:17)
#3      RenderBox.size= (package:flutter/src/rendering/box.dart:1507:65)
#4      RenderCustomMultiChildLayoutBox.performLayout (package:flutter/src/rendering/custom_layout.dart:337:5)
#5      RenderObject.layout (package:flutter/src/rendering/object.dart:1570:7)
#6      RenderPositionedBox.performLayout (package:flutter/src/rendering/shifted_box.dart:381:13)
#7      RenderObject.layout (package:flutter/src/rendering/object.dart:1570:7)
#8      RenderFlex.performLayout (package:flutter/src/rendering/flex.dart:738:15)
#9      RenderObject.layout (package:flutter/src/rendering/object.dart:1570:7)
#10     _RenderSingleChildViewport.performLayout (package:flutter/src/widgets/single_child_scroll_view.dart:322:13)
#11     RenderObject.layout (package:flutter/src/rendering/object.dart:1570:7)
#12     RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:107:13)
#13     RenderObject.layout (package:flutter/src/rendering/object.dart:1570:7)
#14     RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:107:13)
#15     RenderObject.layout (package:flutter/src/rendering/object.dart:1570:7)
#16     RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:107:13)
#17     RenderObject.layout (package:flutter/src/rendering/object.dart:1570:7)
#18     RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:107:13)
#19     RenderObject.layout (package:flutter/src/rendering/object.dart:1570:7)
#20     RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:107:13)
#21     RenderObject.layout (package:flutter/src/rendering/object.dart:1570:7)
#22     RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:107:13)
#23     RenderObject.layout (package:flutter/src/rendering/object.dart:1570:7)
#24     RenderSliverMultiBoxAdaptor.insertAndLayoutChild (package:flutter/src/rendering/sliver_multi_box_adaptor.dart:414:13)
#25     RenderSliverFixedExtentBoxAdaptor.performLayout (package:flutter/src/rendering/sliver_fixed_extent_list.dart:208:17)
#26     RenderObject.layout (package:flutter/src/rendering/object.dart:1570:7)
#27     RenderViewportBase.layoutChildSequence (package:flutter/src/rendering/viewport.dart:285:13)
#28     RenderViewport._attemptLayout (package:flutter/src/rendering/viewport.dart:1008:12)
#29     RenderViewport.performLayout (package:flutter/src/rendering/viewport.dart:932:20)
#30     RenderObject._layoutWithoutResize (package:flutter/src/rendering/object.dart:1445:7)
#31     PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:709:18)
#32     BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:270:19)
#33     BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&RendererBinding&WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:622:22)
#34     BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:208:5)
#35     BindingBase&GestureBinding&ServicesBinding&SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:990:15)
#36     BindingBase&GestureBinding&ServicesBinding&SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:930:9)
#37     BindingBase&GestureBinding&ServicesBinding&SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:842:5)
#38     _invoke (file:///b/build/slave/Mac_Engine/build/src/flutter/lib/ui/hooks.dart:120)
#39     _drawFrame (file:///b/build/slave/Mac_Engine/build/src/flutter/lib/ui/hooks.dart:109)

The following RenderObject was being processed when the exception was fired:
RenderCustomMultiChildLayoutBox#5ee18 relayoutBoundary=up3 NEEDS-LAYOUT NEEDS-PAINT
creator: CustomMultiChildLayout ← PieChart ← Center ← SimplePieChart ← Column ←
_SingleChildViewport ← _ScrollableScope ← IgnorePointer-[GlobalKey#f0129] ← Semantics ← Listener ←
_GestureSemantics ← RawGestureDetector-[LabeledGlobalKey<RawGestureDetectorState>#1c5b8] ← ⋯
parentData: offset=Offset(0.0, 0.0) (can use size)
constraints: BoxConstraints(0.0<=w<=375.0, 0.0<=h<=Infinity)
size: Size(375.0, Infinity)
This RenderObject had the following descendants (showing up to depth 5):
RenderSemanticsGestureHandler#436f8 NEEDS-LAYOUT NEEDS-PAINT
RenderPointerListener#f7976 NEEDS-LAYOUT NEEDS-PAINT
ChartContainerRenderObject#19dd0 NEEDS-LAYOUT NEEDS-PAINT
════════════════════════════════════════════════════════════════════════════════════════════════════
Another exception was thrown: RenderPositionedBox object was given an infinite size during layout.
Another exception was thrown: RenderFlex object was given an infinite size during layout.
Another exception was thrown: NoSuchMethodError: The method '<=' was called on null.
Another exception was thrown: NoSuchMethodError: The method '>' was called on null.
Another exception was thrown: NoSuchMethodError: The method '>' was called on null.
Another exception was thrown: NoSuchMethodError: The method '>' was called on null.
Another exception was thrown: NoSuchMethodError: The method '>' was called on null.
Another exception was thrown: NoSuchMethodError: The method '>' was called on null.
Another exception was thrown: NoSuchMethodError: The method '>' was called on null.
Another exception was thrown: NoSuchMethodError: The method '>' was called on null.
Another exception was thrown: NoSuchMethodError: The method '>' was called on null.
Another exception was thrown: NoSuchMethodError: The method '>' was called on null.

@swillk
Copy link

swillk commented Apr 3, 2018

You can try

@override
  Widget build(BuildContext context) {
    return new Container(
       child: new SimplePieChart.withSampleData(),
    );
  }

if ok, I think the charts need fixed width and fixed height

@lorrainekan
Copy link
Contributor

@swillk is right, the chart needs to be wrapped in a parent widget that provides width and height.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants