Flutter Pie chart with animation

Overview

Pie Chart Cirrus CI - Base Branch Build Status GitHub stars Twitter Follow GitHub last commit Website shields.ioOpen Source Love

This Flutter package provides a Pie Chart Widget with cool animation.

Live Demo: https://apgapg.github.io/pie_chart/

๐Ÿ’ป Try LIVE Demo

Live Demo: https://apgapg.github.io/pie_chart/

piechart

๐Ÿ’ป Installation

In the dependencies: section of your pubspec.yaml, add the following line:

Version

dependencies:
  pie_chart: <latest version>

โ” Usage

Import this class

import 'package:pie_chart/pie_chart.dart';

Usage is simple. Pie Chart is a widget and it just need a Map<String,double> as its data input.

PieChart

Map<String, double> dataMap = {
    "Flutter": 5,
    "React": 3,
    "Xamarin": 2,
    "Ionic": 2,
  };

- Simple Implementation

PieChart(dataMap: dataMap) 

- Full Implementation

PieChart(
      dataMap: dataMap,
      animationDuration: Duration(milliseconds: 800),
      chartLegendSpacing: 32,
      chartRadius: MediaQuery.of(context).size.width / 3.2,
      colorList: colorList,
      initialAngleInDegree: 0,
      chartType: ChartType.ring,
      ringStrokeWidth: 32,
      centerText: "HYBRID",
      legendOptions: LegendOptions(
        showLegendsInRow: false,
        legendPosition: LegendPosition.right,
        showLegends: true,
        legendShape: _BoxShape.circle,
        legendTextStyle: TextStyle(
          fontWeight: FontWeight.bold,
        ),
      ),
      chartValuesOptions: ChartValuesOptions(
        showChartValueBackground: true,
        showChartValues: true,
        showChartValuesInPercentage: false,
        showChartValuesOutside: false,
        decimalPlaces: 1,
      ),
    )

Control decimal places 'decimalPlaces'

chartValuesOptions: ChartValuesOptions(
  decimalPlaces: 1,
),

Change legend position with 'legendPosition'

PieChart PieChart PieChart PieChart

Change Chart shape to ring

chartType: ChartType.ring,

PieChart

chartType: ChartType.ring,
showChartValuesOutside: true,

PieChart

โญ My Flutter Packages

  • json_table GitHub stars Create Flutter Json Table from json map directly.
  • avatar_glow GitHub stars Flutter Avatar Glow Widget with glowing animation.
  • search_widget GitHub stars Flutter Search Widget for selecting an option from list.
  • animating_location_pin GitHub stars Flutter Animating Location Pin Widget providing Animating Location Pin Widget which can be used while fetching device location.

โญ My Flutter Apps

๐Ÿ‘ Contribution

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -m 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request
Comments
  • Change label position

    Change label position

    The label now is displayed vertically. It is possible to displayed horizontally?

    I want change the legend position to top, and displayed the label horizontally.

    Thanks.

    opened by tony123S 17
  • Gradient colors overlapping with each other

    Gradient colors overlapping with each other

    The following assertion was thrown during paint():
    RenderBox was not laid out: RenderViewport#bc66b NEEDS-PAINT
    'package:flutter/src/rendering/box.dart':
    Failed assertion: line 1979 pos 12: 'hasSize'
    
    
    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: 
      ListView ListView:file:///C:/Users/akram/myapp/lib/presentation/history/History.dart:127:28
    When the exception was thrown, this was the stack: 
    #2      RenderBox.size (package:flutter/src/rendering/box.dart:1979:12)
    #3      RenderBox.paintBounds (package:flutter/src/rendering/box.dart:2617:41)
    #4      PaintingContext._repaintCompositedChild (package:flutter/src/rendering/object.dart:140:56)
    #5      PaintingContext.repaintCompositedChild (package:flutter/src/rendering/object.dart:100:5)
    #6      PaintingContext._compositeChild (package:flutter/src/rendering/object.dart:198:7)
    #7      PaintingContext.paintChild (package:flutter/src/rendering/object.dart:185:7)
    #8      RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:15)
    #9      RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2477:7)
    #10     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:187:13)
    #11     RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:15)
    #12     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2477:7)
    #13     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:187:13)
    #14     RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:15)
    #15     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2477:7)
    #16     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:187:13)
    #17     RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:15)
    #18     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2477:7)
    #19     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:187:13)
    #20     RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:15)
    #21     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2477:7)
    #22     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:187:13)
    #23     RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:15)
    #24     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2477:7)
    #25     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:187:13)
    #26     RenderBoxContainerDefaultsMixin.defaultPaint (package:flutter/src/rendering/box.dart:2844:15)
    #27     RenderFlex.paint (package:flutter/src/rendering/flex.dart:1078:7)
    #28     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2477:7)
    #29     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:187:13)
    #30     RenderBoxContainerDefaultsMixin.defaultPaint (package:flutter/src/rendering/box.dart:2844:15)
    #31     RenderCustomMultiChildLayoutBox.paint (package:flutter/src/rendering/custom_layout.dart:408:5)
    #32     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2477:7)
    #33     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:187:13)
    #34     RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:15)
    #35     _RenderInkFeatures.paint (package:flutter/src/material/material.dart:598:11)
    #36     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2477:7)
    #37     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:187:13)
    #38     RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:15)
    #39     PaintingContext.pushLayer (package:flutter/src/rendering/object.dart:387:12)
    #40     RenderPhysicalModel.paint (package:flutter/src/rendering/proxy_box.dart:1951:15)
    #41     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2477:7)
    #42     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:187:13)
    #43     RenderBoxContainerDefaultsMixin.defaultPaint (package:flutter/src/rendering/box.dart:2844:15)
    #44     RenderCustomMultiChildLayoutBox.paint (package:flutter/src/rendering/custom_layout.dart:408:5)
    #45     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2477:7)
    #46     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:187:13)
    #47     RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:15)
    #48     _RenderInkFeatures.paint (package:flutter/src/material/material.dart:598:11)
    #49     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2477:7)
    #50     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:187:13)
    #51     RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:15)
    #52     PaintingContext.pushLayer (package:flutter/src/rendering/object.dart:387:12)
    #53     RenderPhysicalModel.paint (package:flutter/src/rendering/proxy_box.dart:1951:15)
    #54     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2477:7)
    #55     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:187:13)
    #56     RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:15)
    #57     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2477:7)
    #58     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:187:13)
    #59     RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:15)
    #60     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2477:7)
    #61     PaintingContext._repaintCompositedChild (package:flutter/src/rendering/object.dart:141:11)
    #62     PaintingContext.repaintCompositedChild (package:flutter/src/rendering/object.dart:100:5)
    #63     PipelineOwner.flushPaint (package:flutter/src/rendering/object.dart:995:29)
    #64     RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:506:19)
    #65     WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:892:13)
    #66     RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:370:5)
    #67     SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1146:15)
    #68     SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1083:9)
    #69     SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:997:5)
    #73     _invoke (dart:ui/hooks.dart:151:10)
    #74     PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:308:5)
    #75     _drawFrame (dart:ui/hooks.dart:115:31)
    (elided 5 frames from class _AssertionError and dart:async)
    The following RenderObject was being processed when the exception was fired: RenderIgnorePointer#e186c relayoutBoundary=up10
    ...  needs compositing
    ...  parentData: <none> (can use size)
    ...  constraints: BoxConstraints(0.0<=w<=392.7, 0.0<=h<=Infinity)
    ...  size: MISSING
    ...  ignoring: false
    ...  ignoringSemantics: false
    RenderObject: RenderIgnorePointer#e186c relayoutBoundary=up10
      needs compositing
      parentData: <none> (can use size)
      constraints: BoxConstraints(0.0<=w<=392.7, 0.0<=h<=Infinity)
      size: MISSING
      ignoring: false
      ignoringSemantics: false
    ...  child: RenderViewport#bc66b NEEDS-PAINT
    ...    needs compositing
    ...    parentData: <none> (can use size)
    ...    constraints: BoxConstraints(0.0<=w<=392.7, 0.0<=h<=Infinity)
    ...    layer: OffsetLayer#bfdde DETACHED
    ...      handles: 1
    ...      offset: Offset(0.0, 0.0)
    ...    size: MISSING
    ...    axisDirection: down
    ...    crossAxisDirection: right
    ...    offset: ScrollPositionWithSingleContext#f6624(offset: 0.0, range: null..null, viewport: null, ScrollableState, AlwaysScrollableScrollPhysics -> BouncingScrollPhysics -> RangeMaintainingScrollPhysics, IdleScrollActivity#30f36, ScrollDirection.idle)
    ...    anchor: 0.0
    ...    center child: RenderSliverPadding#fc714 NEEDS-LAYOUT NEEDS-PAINT
    ...      parentData: paintOffset=Offset(0.0, 0.0)
    ...      constraints: MISSING
    ...      geometry: null
    ...      padding: EdgeInsets.zero
    ...      textDirection: ltr
    ...      child: RenderSliverList#aefd6 NEEDS-LAYOUT NEEDS-PAINT
    ...        parentData: paintOffset=Offset(0.0, 0.0)
    ...        constraints: MISSING
    ...        geometry: null
    ...        no children current live
    ====================================================================================================
    
    bug good first issue 
    opened by wajahat414 15
  • Feature/gradientElements

    Feature/gradientElements

    Takes a prop gradientList that takes list of colors as elements of list. Another prop isEmptyColorGradient (default:false) to set background color as gradient

    opened by cyriacbijun 12
  • Pie chart not animating with version 5.0.0 (though 4.0.1 works)

    Pie chart not animating with version 5.0.0 (though 4.0.1 works)

    Steps to Reproduce

    Important Factors

    • Pie chart draws, but doesn't have the drawing animation when pubspec.yaml has dependency of pie_chart: ^5.0.0
    • Animation works when only change is reverting dependency in pubspec.yaml back to pie_chart: ^4.0.1

    To reproduce the issue, run the following application:

    Application Code

    main.dart

    import 'package:flutter/material.dart';
    import 'package:pie_chart/pie_chart.dart';
    
    void main() {
      runApp(MyApp());
    }
    
    class MyApp extends StatelessWidget {
      // This widget is the root of your application.
      @override
      Widget build(BuildContext context) {
        return MaterialApp(
          title: 'Flutter Demo',
          theme: ThemeData(
            primarySwatch: Colors.blue,
          ),
          home: MyHomePage(title: 'Flutter Demo Home Page'),
        );
      }
    }
    
    class MyHomePage extends StatefulWidget {
      MyHomePage({Key key, this.title}) : super(key: key);
    
      final String title;
    
      @override
      _MyHomePageState createState() => _MyHomePageState();
    }
    
    class _MyHomePageState extends State<MyHomePage> {
      bool chartvisible = false;
      void _showChart() {
        setState(() {
          chartvisible = !chartvisible;
        });
      }
    
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          appBar: AppBar(
            title: Text(widget.title),
          ),
          body: Center(
              child: chartvisible
                  ? PieChart(
                      dataMap: {
                        'unwatched': 25.0,
                        'watched': 75.0,
                      },
                      colorList: [
                        Colors.grey,
                        Colors.green,
                      ],
                      chartValuesOptions:
                          ChartValuesOptions(showChartValues: false),
                      legendOptions: LegendOptions(
                        showLegends: false,
                        legendPosition: LegendPosition.right,
                      ),
                    )
                  : Container()),
          floatingActionButton: FloatingActionButton(
            onPressed: _showChart,
            child: Icon(Icons.add),
          ),
        );
      }
    }
    

    pubspec.yaml

    name: piecharttest
    description: A new Flutter project.
    
    publish_to: 'none' 
    
    version: 1.0.0+1
    
    environment:
      sdk: ">=2.7.0 <3.0.0"
    
    dependencies:
      flutter:
        sdk: flutter
      pie_chart: ^5.0.0
    
    
      cupertino_icons: ^1.0.2
    
    dev_dependencies:
      flutter_test:
        sdk: flutter
    
    flutter:
    
      uses-material-design: true
    
    Flutter Doctor Output
    [โˆš] Flutter (Channel stable, 2.0.1, on Microsoft Windows [Version 10.0.19042.867], locale en-US)
        โ€ข Flutter version 2.0.1 at C:\development\flutter
        โ€ข Framework revision c5a4b4029c (8 days ago), 2021-03-04 09:47:48 -0800
        โ€ข Engine revision 40441def69
        โ€ข Dart version 2.12.0
    
    [โˆš] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
        โ€ข Android SDK at C:\development\android-sdk
        โ€ข Platform android-30, build-tools 30.0.2
        โ€ข ANDROID_SDK_ROOT = C:\development\android-sdk
        โ€ข 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.
    
    [โˆš] Chrome - develop for the web
        โ€ข Chrome at C:\Program Files (x86)\Google\Chrome\Application\chrome.exe
    
    [โˆš] Android Studio (version 4.1.0)
        โ€ข Android Studio at C:\Program Files\Android\Android Studio
        โ€ข 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 1.8.0_242-release-1644-b01)
    
    [โˆš] VS Code (version 1.54.2)
        โ€ข VS Code at C:\Users\josht\AppData\Local\Programs\Microsoft VS Code
        โ€ข Flutter extension version 3.20.0
    
    [โˆš] Connected device (2 available)
        โ€ข Chrome (web) โ€ข chrome โ€ข web-javascript โ€ข Google Chrome 88.0.4324.190
        โ€ข Edge (web)   โ€ข edge   โ€ข web-javascript โ€ข Microsoft Edge 89.0.774.50
    
    โ€ข No issues found!
    

    Expected Results

    Pie chart animates when drawn.

    Actual Results

    Pie chart doesn't animate when using pie_chart 5.0.0, but does animate when using 4.0.1.

    https://user-images.githubusercontent.com/80551292/111005311-6d02a400-833f-11eb-8bee-780697a167ef.mp4

    https://user-images.githubusercontent.com/80551292/111005317-6ecc6780-833f-11eb-8e2a-38e5c6c99829.mp4

    good first issue 
    opened by JoshTaub 7
  • A few issues since upgrading from 2.0.0

    A few issues since upgrading from 2.0.0

    Hi!

    A few issues since upgrading from 2.0.0

    1. showChartValuesOutside: The are not totally outside, they are partially on the chart which in my opinion doesn't look as good
    2. Legend position that was added looks bad on RTL languages. a) It is not aligned to the start of the container b) There is not enough padding between the chart and the legends I believe that it will be better to have LegendPosition.start and LegendPosition.end instead of left and right. Please test on a device with and RTL language.

    Thanks for this great package. Hope you could get to fixing these issues soon.

    opened by guyzk 5
  • Custom colors

    Custom colors

    Goodmorning,

    I have custom colors i would love to send within the dataMap, is it possible to do this? Because i can read from your pie_chart.dart that you already specified a list of colors.

    Greetings, Jente

    opened by SJente 5
  • TextStyle option for center text

    TextStyle option for center text

    Hi,

    Thanks for this wonderful package.

    Is it possibe to let us customize the centerText by providing textStyle option?

    Otherwise, it's a very good and customizable package!

    enhancement 
    opened by saeedjassani 4
  • toDouble was Called on null

    toDouble was Called on null

    I/flutter (30917): โ•โ•โ•ก EXCEPTION CAUGHT BY WIDGETS LIBRARY โ•žโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• I/flutter (30917): The following NoSuchMethodError was thrown building PieChart(dirty, state: I/flutter (30917): _PieChartState#f7d87(ticker active)): I/flutter (30917): The method 'toDouble' was called on null. I/flutter (30917): Receiver: null I/flutter (30917): Tried calling: toDouble() I/flutter (30917): I/flutter (30917): When the exception was thrown, this was the stack: I/flutter (30917): #0 Object.noSuchMethod (dart:core-patch/object_patch.dart:50:5) I/flutter (30917): #1 double.+ (dart:core-patch/double.dart:17:23) I/flutter (30917): #2 new PieChartPainter (package:pie_chart/pie_chart.dart:214:21) I/flutter (30917): #3 _PieChartState.build (package:pie_chart/pie_chart.dart:112:28) I/flutter (30917): #4 StatefulElement.build (package:flutter/src/widgets/framework.dart:3825:27) I/flutter (30917): #5 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3739:15) I/flutter (30917): #6 Element.rebuild (package:flutter/src/widgets/framework.dart:3565:5) I/flutter (30917): #7 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3722:5) I/flutter (30917): #8 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:3864:11) I/flutter (30917): #9 ComponentElement.mount (package:flutter/src/widgets/framework.dart:3717:5) I/flutter (30917): #10 Element.inflateWidget (package:flutter/src/widgets/framework.dart:2961:14) I/flutter (30917): #11 Element.updateChild (package:flutter/src/widgets/framework.dart:2764:12) I/flutter (30917): #12 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4876:14) I/flutter (30917): #13 Element.inflateWidget (package:flutter/src/widgets/framework.dart:2961:14) I/flutter (30917): #14 Element.updateChild (package:flutter/src/widgets/framework.dart:2764:12) I/flutter (30917): #15 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3750:16) I/flutter (30917): #16 Element.rebuild (package:flutter/src/widgets/framework.dart:3565:5) I/flutter (30917): #17 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3722:5) I/flutter (30917): #18 ComponentElement.mount (package:flutter/src/widgets/framework.dart:3717:5) I/flutter (30917): #19 Element.inflateWidget (package:flutter/src/widgets/framework.dart:2961:14) I/flutter (30917): #20 Element.updateChild (package:flutter/src/widgets/framework.dart:2764:12) I/flutter (30917): #21 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3750:16) I/flutter (30917): #22 Element.rebuild (package:flutter/src/widgets/framework.dart:3565:5) I/flutter (30917): #23 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3722:5) I/flutter (30917): #24 ComponentElement.mount (package:flutter/src/widgets/framework.dart:3717:5) I/flutter (30917): #25 Element.inflateWidget (package:flutter/src/widgets/framework.dart:2961:14) I/flutter (30917): #26 Element.updateChild (package:flutter/src/widgets/framework.dart:2764:12) I/flutter (30917): #27 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3750:16) I/flutter (30917): #28 Element.rebuild (package:flutter/src/widgets/framework.dart:3565:5) I/flutter (30917): #29 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3722:5) I/flutter (30917): #30 ComponentElement.mount (package:flutter/src/widgets/framework.dart:3717:5) I/flutter (30917): #31 ParentDataElement.mount (package:flutter/src/widgets/framework.dart:4063:11) I/flutter (30917): #32 Element.inflateWidget (package:flutter/src/widgets/framework.dart:2961:14) I/flutter (30917): #33 MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4982:32) I/flutter (30917): #34 Element.inflateWidget (package:flutter/src/widgets/framework.dart:2961:14) I/flutter (30917): #35 Element.updateChild (package:flutter/src/widgets/framework.dart:2764:12) I/flutter (30917): #36 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3750:16) I/flutter (30917): #37 Element.rebuild (package:flutter/src/widgets/framework.dart:3565:5) I/flutter (30917): #38 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3722:5) I/flutter (30917): #39 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:3864:11) I/flutter (30917): #40 ComponentElement.mount (package:flutter/src/widgets/framework.dart:3717:5) I/flutter (30917): #41 Element.inflateWidget (package:flutter/src/widgets/framework.dart:2961:14) I/flutter (30917): #42 Element.updateChild (package:flutter/src/widgets/framework.dart:2764:12) I/flutter (30917): #43 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3750:16) I/flutter (30917): #44 Element.rebuild (package:flutter/src/widgets/framework.dart:3565:5) I/flutter (30917): #45 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3722:5) I/flutter (30917): #46 ComponentElement.mount (package:flutter/src/widgets/framework.dart:3717:5) I/flutter (30917): #47 Element.inflateWidget (package:flutter/src/widgets/framework.dart:2961:14) I/flutter (30917): #48 Element.updateChild (package:flutter/src/widgets/framework.dart:2764:12) I/flutter (30917): #49 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3750:16) I/flutter (30917): #50 Element.rebuild (package:flutter/src/widgets/framework.dart:3565:5) I/flutter (30917): #51 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3722:5) I/flutter (30917): #52 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:3864:11) I/flutter (30917): #53 ComponentElement.mount (package:flutter/src/widgets/framework.dart:3717:5) I/flutter (30917): #54 Element.inflateWidget (package:flutter/src/widgets/framework.dart:2961:14) I/flutter (30917): #55 Element.updateChild (package:flutter/src/widgets/framework.dart:2764:12) I/flutter (30917): #56 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4876:14) I/flutter (30917): #57 Element.inflateWidget (package:flutter/src/widgets/framework.dart:2961:14) I/flutter (30917): #58 Element.updateChild (package:flutter/src/widgets/framework.dart:2764:12) I/flutter (30917): #59 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3750:16) I/flutter (30917): #60 Element.rebuild (package:flutter/src/widgets/framework.dart:3565:5) I/flutter (30917): #61 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3722:5) I/flutter (30917): #62 ComponentElement.mount (package:flutter/src/widgets/framework.dart:3717:5) I/flutter (30917): #63 Element.inflateWidget (package:flutter/src/widgets/framework.dart:2961:14) I/flutter (30917): #64 Element.updateChild (package:flutter/src/widgets/framework.dart:2764:12) I/flutter (30917): #65 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4876:14) I/flutter (30917): #66 Element.inflateWidget (package:flutter/src/widgets/framework.dart:2961:14) I/flutter (30917): #67 Element.updateChild (package:flutter/src/widgets/framework.dart:2764:12) I/flutter (30917): #68 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3750:16) I/flutter (30917): #69 Element.rebuild (package:flutter/src/widgets/framework.dart:3565:5) I/flutter (30917): #70 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3722:5) I/flutter (30917): #71 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:3864:11) I/flutter (30917): #72 ComponentElement.mount (package:flutter/src/widgets/framework.dart:3717:5) I/flutter (30917): #73 Element.inflateWidget (package:flutter/src/widgets/framework.dart:2961:14) I/flutter (30917): #74 Element.updateChild (package:flutter/src/widgets/framework.dart:2764:12) I/flutter (30917): #75 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3750:16) I/flutter (30917): #76 Element.rebuild (package:flutter/src/widgets/framework.dart:3565:5) I/flutter (30917): #77 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3722:5) I/flutter (30917): #78 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:3864:11) I/flutter (30917): #79 ComponentElement.mount (package:flutter/src/widgets/framework.dart:3717:5) I/flutter (30917): #80 Element.inflateWidget (package:flutter/src/widgets/framework.dart:2961:14) I/flutter (30917): #81 Element.updateChild (package:flutter/src/widgets/framework.dart:2764:12) I/flutter (30917): #82 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3750:16) I/flutter (30917): #83 Element.rebuild (package:flutter/src/widgets/framework.dart:3565:5) I/flutter (30917): #84 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3722:5) I/flutter (30917): #85 ComponentElement.mount (package:flutter/src/widgets/framework.dart:3717:5) I/flutter (30917): #86 Element.inflateWidget (package:flutter/src/widgets/framework.dart:2961:14) I/flutter (30917): #87 Element.updateChild (package:flutter/src/widgets/framework.dart:2764:12) I/flutter (30917): #88 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3750:16) I/flutter (30917): #89 Element.rebuild (package:flutter/src/widgets/framework.dart:3565:5) I/flutter (30917): #90 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3722:5) I/flutter (30917): #91 ComponentElement.mount (package:flutter/src/widgets/framework.dart:3717:5) I/flutter (30917): #92 Element.inflateWidget (package:flutter/src/widgets/framework.dart:2961:14) I/flutter (30917): #93 Element.updateChild (package:flutter/src/widgets/framework.dart:2764:12) I/flutter (30917): #94 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3750:16) I/flutter (30917): #95 Element.rebuild (package:flutter/src/widgets/framework.dart:3565:5) I/flutter (30917): #96 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3722:5) I/flutter (30917): #97 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:3864:11) I/flutter (30917): #98 ComponentElement.mount (package:flutter/src/widgets/framework.dart:3717:5) I/flutter (30917): #99 Element.inflateWidget (package:flutter/src/widgets/framework.dart:2961:14) I/flutter (30917): #100 Element.updateChild (package:flutter/src/widgets/framework.dart:2764:12) I/flutter (30917): #101 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3750:16) I/flutter (30917): #102 Element.rebuild (package:flutter/src/widgets/framework.dart:3565:5) I/flutter (30917): #103 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3722:5) I/flutter (30917): #104 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:3864:11) I/flutter (30917): #105 ComponentElement.mount (package:flutter/src/widgets/framework.dart:3717:5) I/flutter (30917): #106 Element.inflateWidget (package:flutter/src/widgets/framework.dart:2961:14) I/flutter (30917): #107 Element.updateChild (package:flutter/src/widgets/framework.dart:2764:12) I/flutter (30917): #108 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4876:14) I/flutter (30917): #109 Element.inflateWidget (package:flutter/src/widgets/framework.dart:2961:14) I/flutter (30917): #110 Element.updateChild (package:flutter/src/widgets/framework.dart:2764:12) I/flutter (30917): #111 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3750:16) I/flutter (30917): #112 Element.rebuild (package:flutter/src/widgets/framework.dart:3565:5) I/flutter (30917): #113 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3722:5) I/flutter (30917): #114 ComponentElement.mount (package:flutter/src/widgets/framework.dart:3717:5) I/flutter (30917): #115 Element.inflateWidget (package:flutter/src/widgets/framework.dart:2961:14) I/flutter (30917): #116 Element.updateChild (package:flutter/src/widgets/framework.dart:2764:12) I/flutter (30917): #117 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4876:14) I/flutter (30917): #118 Element.inflateWidget (package:flutter/src/widgets/framework.dart:2961:14) I/flutter (30917): #119 Element.updateChild (package:flutter/src/widgets/framework.dart:2764:12) I/flutter (30917): #120 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4876:14) I/flutter (30917): #121 Element.inflateWidget (package:flutter/src/widgets/framework.dart:2961:14) I/flutter (30917): #122 Element.updateChild (package:flutter/src/widgets/framework.dart:2764:12) I/flutter (30917): #123 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4876:14) I/flutter (30917): #124 Element.inflateWidget (package:flutter/src/widgets/framework.dart:2961:14) I/flutter (30917): #125 Element.updateChild (package:flutter/src/widgets/framework.dart:2764:12) I/flutter (30917): #126 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4876:14) I/flutter (30917): #127 Element.inflateWidget (package:flutter/src/widgets/framework.dart:2961:14) I/flutter (30917): #128 Element.updateChild (package:flutter/src/widgets/framework.dart:2764:12) I/flutter (30917): #129 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3750:16) I/flutter (30917): #130 Element.rebuild (package:flutter/src/widgets/framework.dart:3565:5) I/flutter (30917): #131 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3722:5) I/flutter (30917): #132 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:3864:11) I/flutter (30917): #133 ComponentElement.mount (package:flutter/src/widgets/framework.dart:3717:5) I/flutter (30917): #134 Element.inflateWidget (package:flutter/src/widgets/framework.dart:2961:14) I/flutter (30917): #135 Element.updateChild (package:flutter/src/widgets/framework.dart:2764:12) I/flutter (30917): #136 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3750:16) I/flutter (30917): #137 Element.rebuild (package:flutter/src/widgets/framework.dart:3565:5) I/flutter (30917): #138 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3722:5) I/flutter (30917): #139 ComponentElement.mount (package:flutter/src/widgets/framework.dart:3717:5) I/flutter (30917): #140 Element.inflateWidget (package:flutter/src/widgets/framework.dart:2961:14) I/flutter (30917): #141 Element.updateChild (package:flutter/src/widgets/framework.dart:2764:12) I/flutter (30917): #142 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3750:16) I/flutter (30917): 2 I/flutter (30917): 3 I/flutter (30917): 2.0 I/flutter (30917): 3.0 I/flutter (30917): #143 Element.rebuild (package:flutter/src/widgets/framework.dart:3565:5) I/flutter (30917): #144 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3722:5) I/flutter (30917): #145 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:3864:11) I/flutter (30917): #146 ComponentElement.mount (package:flutter/src/widgets/framework.dart:3717:5) I/flutter (30917): #147 Element.inflateWidget (package:flutter/src/widgets/framework.dart:2961:14) I/flutter (30917): #148 Element.updateChild (package:flutter/src/widgets/framework.dart:2764:12) I/flutter (30917): #149 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4876:14) I/flutter (30917): #150 Element.inflateWidget (package:flutter/src/widgets/framework.dart:2961:14) I/flutter (30917): #151 Element.updateChild (package:flutter/src/widgets/framework.dart:2764:12) I/flutter (30917): #152 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3750:16) I/flutter (30917): #153 Element.rebuild (package:flutter/src/widgets/framework.dart:3565:5) I/flutter (30917): #154 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3722:5) I/flutter (30917): #155 ComponentElement.mount (package:flutter/src/widgets/framework.dart:3717:5) I/flutter (30917): #156 Element.inflateWidget (package:flutter/src/widgets/framework.dart:2961:14) I/flutter (30917): #157 Element.updateChild (package:flutter/src/widgets/framework.dart:2764:12) I/flutter (30917): #158 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4876:14) I/flutter (30917): #159 Element.inflateWidget (package:flutter/src/widgets/framework.dart:2961:14) I/flutter (30917): #160 Element.updateChild (package:flutter/src/widgets/framework.dart:2764:12) I/flutter (30917): #161 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3750:16) I/flutter (30917): #162 Element.rebuild (package:flutter/src/widgets/framework.dart:3565:5) I/flutter (30917): #163 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3722:5) I/flutter (30917): #164 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:3864:11) I/flutter (30917): #165 ComponentElement.mount (package:flutter/src/widgets/framework.dart:3717:5) I/flutter (30917): #166 Element.inflateWidget (package:flutter/src/widgets/framework.dart:2961:14) I/flutter (30917): #167 Element.updateChild (package:flutter/src/widgets/framework.dart:2764:12) I/flutter (30917): #168 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3750:16) I/flutter (30917): #169 Element.rebuild (package:flutter/src/widgets/framework.dart:3565:5) I/flutter (30917): #170 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3722:5) I/flutter (30917): #171 ComponentElement.mount (package:flutter/src/widgets/framework.dart:3717:5) I/flutter (30917): #172 Element.inflateWidget (package:flutter/src/widgets/framework.dart:2961:14) I/flutter (30917): #173 Element.updateChild (package:flutter/src/widgets/framework.dart:2764:12) I/flutter (30917): #174 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4876:14) I/flutter (30917): #175 Element.inflateWidget (package:flutter/src/widgets/framework.dart:2961:14) I/flutter (30917): #176 Element.updateChild (package:flutter/src/widgets/framework.dart:2764:12) I/flutter (30917): #177 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3750:16) I/flutter (30917): #178 Element.rebuild (package:flutter/src/widgets/framework.dart:3565:5) I/flutter (30917): #179 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3722:5) I/flutter (30917): #180 ComponentElement.mount (package:flutter/src/widgets/framework.dart:3717:5) I/flutter (30917): #181 Element.inflateWidget (package:flutter/src/widgets/framework.dart:2961:14) I/flutter (30917): #182 Element.updateChild (package:flutter/src/widgets/framework.dart:2764:12) I/flutter (30917): #183 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3750:16) I/flutter (30917): #184 Element.rebuild (package:flutter/src/widgets/framework.dart:3565:5) I/flutter (30917): #185 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3722:5) I/flutter (30917): #186 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:3864:11) I/flutter (30917): #187 ComponentElement.mount (package:flutter/src/widgets/framework.dart:3717:5) I/flutter (30917): #188 Element.inflateWidget (package:flutter/src/widgets/framework.dart:2961:14) I/flutter (30917): #189 Element.updateChild (package:flutter/src/widgets/framework.dart:2764:12) I/flutter (30917): #190 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3750:16) I/flutter (30917): #191 Element.rebuild (package:flutter/src/widgets/framework.dart:3565:5) I/flutter (30917): #192 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3722:5) I/flutter (30917): #193 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:3864:11) I/flutter (30917): #194 ComponentElement.mount (package:flutter/src/widgets/framework.dart:3717:5) I/flutter (30917): #195 Element.inflateWidget (package:flutter/src/widgets/framework.dart:2961:14) I/flutter (30917): #196 Element.updateChild (package:flutter/src/widgets/framework.dart:2764:12) I/flutter (30917): #197 RenderObjectElement.updateChildren (package:flutter/src/widgets/framework.dart:4659:32) I/flutter (30917): #198 MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:4992:17) I/flutter (30917): #199 Element.updateChild (package:flutter/src/widgets/framework.dart:2753:15) I/flutter (30917): #200 _TheatreElement.update (package:flutter/src/widgets/overlay.dart:607:16) I/flutter (30917): #201 Element.updateChild (package:flutter/src/widgets/framework.dart:2753:15) I/flutter (30917): #202 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3750:16) I/flutter (30917): #203 Element.rebuild (package:flutter/src/widgets/framework.dart:3565:5) I/flutter (30917): #204 StatefulElement.update (package:flutter/src/widgets/framework.dart:3894:5) I/flutter (30917): #205 Element.updateChild (package:flutter/src/widgets/framework.dart:2753:15) I/flutter (30917): #206 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3750:16) I/flutter (30917): #207 Element.rebuild (package:flutter/src/widgets/framework.dart:3565:5) I/flutter (30917): #208 ProxyElement.update (package:flutter/src/widgets/framework.dart:4006:5) I/flutter (30917): #209 Element.updateChild (package:flutter/src/widgets/framework.dart:2753:15) I/flutter (30917): #210 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:4883:14) I/flutter (30917): #211 Element.updateChild (package:flutter/src/widgets/framework.dart:2753:15) I/flutter (30917): #212 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3750:16) I/flutter (30917): #213 Element.rebuild (package:flutter/src/widgets/framework.dart:3565:5) I/flutter (30917): #214 StatefulElement.update (package:flutter/src/widgets/framework.dart:3894:5) I/flutter (30917): #215 Element.updateChild (package:flutter/src/widgets/framework.dart:2753:15) I/flutter (30917): #216 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:4883:14) I/flutter (30917): #217 Element.updateChild (package:flutter/src/widgets/framework.dart:2753:15) I/flutter (30917): #218 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:4883:14) I/flutter (30917): #219 Element.updateChild (package:flutter/src/widgets/framework.dart:2753:15) I/flutter (30917): #220 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3750:16) I/flutter (30917): #221 Element.rebuild (package:flutter/src/widgets/framework.dart:3565:5) I/flutter (30917): #222 BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2278:33) I/flutter (30917): #223 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding&WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:700:20) I/flutter (30917): #224 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:286:5) I/flutter (30917): #225 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1012:15) I/flutter (30917): #226 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:952:9) I/flutter (30917): #227 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:864:5) I/flutter (30917): #231 _invoke (dart:ui/hooks.dart:219:10) I/flutter (30917): #232 _drawFrame (dart:ui/hooks.dart:178:3) I/flutter (30917): (elided 3 frames from package dart:async) I/flutter (30917): โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• I/flutter (30917): Another exception was thrown: NoSuchMethodError: The method 'toDouble' was called on null. I/chatty (30917): uid=10656(com.example.mydb_todo) 1.ui identical 4 lines I/flutter (30917): Another exception was thrown: NoSuchMethodError: The method 'toDouble' was called onnull.``

    opened by nitishpatel 4
  • Data changed but PieChart was not changed.

    Data changed but PieChart was not changed.

    I used FutureBuilder to mock data from sqflite then build a PieChart. My code like this:

    new FutureBuilder<List<Map<String, dynamic>>>( future: db.getGroupData(), builder: (BuildContext context, AsyncSnapshot<List<Map<String, dynamic>>> snapshot) { if(snapshot.hasData) { return pieChartCard(context, snapshot.data); } else { return new CircularProgressIndicator(); } }, ), And render function pieChartCard: `Widget pieChartCard(BuildContext context, List<Map<String, dynamic>> data) { Size size = MediaQuery.of(context).size; Map<String, double> dataMap = new Map<String, double>();

    data.forEach((item) => dataMap.putIfAbsent(item['tengroup'], () => item['Total'] + 0.0));
    
    return new Column(
        children: <Widget>[
          new FlatButton(
            onPressed: () => null,
            child: new Text(
              dataMap.length.toString(),
              style: new TextStyle(
                color: Colors.white,
                fontWeight: FontWeight.w900,
                fontSize: 25.0
              ),
            ),
          ),
          new PieChart(
            dataMap: dataMap,
            legendFontColor: Colors.white,
            legendFontSize: 14.0,
            legendFontWeight: FontWeight.w500,
            animationDuration: Duration(milliseconds: 800),
            chartLegendSpacing: 32.0,
            chartRadius: MediaQuery
                .of(context)
                .size
                .width / 2.7,
            showChartValuesInPercentage: true,
            showChartValues: true,
            chartValuesColor: Colors.blueGrey[900].withOpacity(0.9),
          )
        ],
      );
    

    }` When i insert a data from other Screen and then back to previous screen but pie chart was not changed. I also logged some script in render function and saw the data was changed. My chart only change when i exit app and then open it again. Please let me know how to fix it. Thanks.

    opened by leehuwuj 4
  • Custom legend label

    Custom legend label

    An option for adding custom legend labels. Closes #63 This PR will add a new property legendLabels of type Map<String,String> to the widget.

    final legendLabels = <String, String>{
        "Flutter": "Flutter legend",
        "React": "React legend",
        "Xamarin": "Xamarin legend",
        "Ionic": "Ionic legend",
      };
    
    
    // add to pie chart
    legendLabels: legendLabels
    

    Screenshot from 2021-11-09 09-29-55

    The key in property should match with dataMap, otherwise fallback to default value.

    final legendLabels = <String, String>{
        "Flutter": "Flutter legend",
        "React": "React legend",
      };
    
    
    // add to pie chart
    legendLabels: legendLabels
    

    Screenshot from 2021-11-09 09-46-20

    opened by Imagine-Me 3
  • Migrate pie_chart to null safety

    Migrate pie_chart to null safety

    This package should be migrated to null safety so that other apps and packages depending on it can (more easily) migrate to null safety as well.

    Do you have any plans for this?

    Thanks.

    Related links:

    https://dart.dev/null-safety/migration-guide

    https://www.youtube.com/watch?v=bvq7wbn4VAA&ab_channel=Flutter

    good first issue 
    opened by peterwvj 3
  • Automatic Repaint on Hero

    Automatic Repaint on Hero

    I wrapped the PieChart with a Hero widget in order to animate that between two pages. When a switch to the second page the PieChart gets repainted. I think the widget is painting as soon as the page loads, and the hero widget overrides that animation, and then you obtain that weird laggy effect

    opened by riccardocescon 2
  • Quality of life improvement: Small

    Quality of life improvement: Small "pie slices" are cut off because the slice is to small

    As seen in the photo below, I have a slice that should represent 3%. image There is no other text nearby to cut it off. This makes me think the 3% text is tied to a layer in a stack and that the 97% layer is covering the text.

    A possible solution would be to place the text on top of the graph rather than having the text tied to a specific layer.

    opened by shawnAshton 0
  • [BUG] Random Angle on Repaint

    [BUG] Random Angle on Repaint

    Whenever Flutter repaints the PieChart angle will seemingly change to a random angle.

    https://user-images.githubusercontent.com/2219074/170731588-70a5eae1-b8b1-461e-a348-7fccca7a118a.mov

    This is how PieChart is used in my app:

               PieChart(
                  initialAngleInDegree: 270.0,
                  dataMap: {
                    "water": value,
                  },
                  ringStrokeWidth: 6.0,
                  chartType: ChartType.ring,
                  totalValue: maxValue,
                  baseChartColor: Colors.black38,
                  colorList: const [
                    Colors.greenAccent,
                  ],
                  chartValuesOptions: const ChartValuesOptions(
                    showChartValues: false,
                  ),
                  legendOptions: const LegendOptions(
                    showLegends: false,
                  ),
                ),
              ),
    

    What could possibly be the issue? Is it a bug in PieChart self?

    opened by MelvinIdema 5
  • Flutter 3 issue

    Flutter 3 issue

    In Flutter 3, WidgetsBinding.instance no longer requires a null safety check.

    : Warning: Operand of null-aware operation '?.' has type 'WidgetsBinding' which excludes null.
    ../โ€ฆ/pie_chart/pie_chart.dart:42
    - 'WidgetsBinding' is from 'package:flutter/src/widgets/binding.dart' ('../../../../bin/flutter/packages/flutter/lib/src/widgets/binding.dart').
    package:flutter/โ€ฆ/widgets/binding.dart:1
        WidgetsBinding.instance?.addPostFrameCallback((_) {
    
    good first issue waiting for customer response 
    opened by fennelhans 5
Owner
Ayush P Gupta
Flutter || Node || Vue || Typescript
Ayush P Gupta
A powerful ๐Ÿš€ Android chart view / graph view library, supporting line- bar- pie- radar- bubble- and candlestick charts as well as scaling, panning and animations.

โšก A powerful & easy to use chart library for Android โšก Charts is the iOS version of this library Table of Contents Quick Start Gradle Maven Documentat

Philipp Jahoda 36k Dec 28, 2022
Sliver bar chart - A package that supports Bar Chart in a Flutter Sliver

Sliver bar chart - A package that supports Bar Chart in a Flutter Sliver. This Package allows us to add Bar Chart in Sliver and sets a Bar Chart as a Header on Slivers Scroll.

MindInventory 19 Oct 11, 2022
Animated radial and pie charts for Flutter

Flutter Circular Chart A library for creating animated circular chart widgets with Flutter, inspired by Zero to One with Flutter. Overview Create easi

Victor Choueiri 387 Dec 26, 2022
A beautiful bezier line chart widget for flutter that is highly interactive and configurable.

Bezier Chart A beautiful bezier line chart widget for flutter that is highly interactive and configurable. Features Multi bezier lines Allow numbers a

Aeyrium 428 Dec 21, 2022
A scrollable time chart in Flutter.

time_chart An amazing time chart in Flutter. Chart Types TimeChart AmountChart Getting Started 1 - Depend on it Add it to your package's pubspec.yaml

Minseong Kim 26 Oct 28, 2022
This project is used to introduce the use of flutter canvas, include draw chart, clip image's path and draw progress indicator.

flutter_canvas This project is used to introduce the use of flutter canvas, include draw chart, clip image's path and draw progress indicator. draw ch

YouXianMing 9 Oct 27, 2022
Maybe this is the best k chart in Flutter.Support drag,scale,long press,fling.And easy to use.

k_chart Maybe this is the best k chart in Flutter.Support drag,scale,long press,fling.And easy to use. display image gif Getting Started Install depen

OpenFlutter 342 Jan 9, 2023
Flutter chart library contains depth charts supporting various indicators and zooming

flutter_k_chart ไป‹็ป ไธ€ไธชไปฟ็ซๅธ็š„flutterๅ›พ่กจๅบ“ๅŒ…ๅซๆทฑๅบฆๅ›พ๏ผŒๆ”ฏๆŒๅ„็งๆŒ‡ๆ ‡ๅŠๆ”พๅคง็ผฉๅฐใ€ๅนณ็งป็ญ‰ๆ“ไฝœ webdemoๆผ”็คบ Demo v0.1.0๏ผšไธ‹่ฝฝ APK ๆผ”็คบ ็ฎ€ๅ•็”จไพ‹ 1.ๅœจ pubspec.yaml ไธญๆทปๅŠ ไพ่ต– ๆœฌ้กน็›ฎๆ•ฐๆฎๆฅ่‡ช็ซๅธopenApi๏ผŒ็ซๅธ็š„ๆŽฅๅฃๅฏ่ƒฝ้œ€่ฆ็ฟปๅข™๏ผŒๆŽฅๅฃ

gwh 259 Dec 30, 2022
Animated line chart for flutter

fl_animated_linechart An animated chart library for flutter. Support for datetime axis Multiple y axis, supporting different units Highlight selection

null 51 Sep 25, 2022
Basic radar chart for Flutter

flutter_radar_chart Animated radar chart for Flutter inspired by The Python Graph Gallery (https://python-graph-gallery.com/radar-chart/). Follow the

Dan Panaite 44 Dec 10, 2022
A simple radial chart for Flutter

A simple radial chart for Flutter

null 2 Jun 2, 2022
A simple candlestick chart for flutter. Supports smooth scroll and zoom

simple_candlestick_chart A simple candlestick chart for flutter. Supports smooth

7c00 14 Oct 17, 2022
Flutter heatmap calendar inspired by github contribution chart. [traditional mode / calendar mode]

Flutter Heatmap Flutter heatmap calendar inspired by github contribution chart.

Kim Seung Hwan 1 Dec 26, 2021
๐Ÿ“† Flutter heatmap calendar inspired by github contribution chart.

Flutter Heatmap Calendar Flutter Heatmap Calendar inspired by github contribution chart. Flutter Heatmap Calendar provides traditional contribution ch

Kim Seung Hwan 22 Jan 1, 2023
Stores and manages the data of your week expenses with a chart

personal_expenses_app A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you st

null 1 Dec 26, 2021
Charts Library for Flutter, written in Dart with Flutter.

Table of Contents New in the current release Illustration of the new "iterative auto layout" feature Autolayout step 1 Autolayout step 2 Autolayout st

Milan Zimmermann 225 Dec 25, 2022
Beautiful sparkline charts for Flutter

flutter_sparkline Beautiful sparkline charts for Flutter. Installation Install the latest version from pub. Quick Start Import the package, create a S

Victor Choueiri 255 Dec 21, 2022
Elegant OHLC Candlestick and Trade Volume charts for @Flutter

flutter_candlesticks Elegant OHLC Candlestick and Trade Volume charts for Flutter Usage Install for Flutter with pub. Property Description data Requir

Trent Piercy 402 Dec 21, 2022
A Flutter widget to use Apache ECharts (incubating) in a reactive way.

ไธญๆ–‡ [![pub](https://img.shields.io/pub/v/flutter_echarts.svg)](https://pub.dev/packages/flutter_echarts) A Flutter widget to use Apache ECharts in a re

LIN Chen 629 Dec 29, 2022