Flutter (Google) OrdinalComboBarLineChart внутри MartialApp, ошибка в режиме выпуска: NEEDS-PAINT - PullRequest
0 голосов
/ 06 декабря 2018

В приложении Flutter я пытаюсь реализовать OrdinalComboBarLineChart, найденный здесь: https://github.com/google/charts.

Он работает в режиме отладки.Однако в режиме выпуска он выдает ошибку и не отображает график должным образом.Я получаю следующую ошибку:

I/flutter (26577): The following RenderObject was being processed when the exception was fired:
I/flutter (26577):   ChartContainerRenderObject<String>#8d79e NEEDS-PAINT
I/flutter (26577):   parentData: <none>
I/flutter (26577):   constraints: BoxConstraints(w=360.0, h=640.0)
I/flutter (26577):   semantic boundary
I/flutter (26577):   size: Size(0.0, 0.0)
I/flutter (26577): This RenderObject has no descendants.

Я обнаружил проблему, связанную с тем, что диаграмма находится внутри виджета MaterialApp.Видя, как, когда я удаляю виджет MaterialApp, он работает.

Ниже приведен код, который вызывает эту ошибку:

import 'package:flutter/material.dart';
import 'package:charts_flutter/flutter.dart' as charts;

void main() {
  runApp(new OrdinalComboBarLineChart());
}

class OrdinalComboBarLineChart extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    List<charts.Series> seriesList = _createSampleData();

    return MaterialApp(
        home: Container(
            height: 205.0,
            width: 350.0,
            child: charts.OrdinalComboChart(seriesList,
                animate: false,
                defaultRenderer: charts.LineRendererConfig(areaOpacity: 0.8, includeArea: true),
                customSeriesRenderers: [
                  new charts.LineRendererConfig(customRendererId: 'LineOne'),
                ])));
  }

  /// Create series list with multiple series
  List<charts.Series<OrdinalSales, String>> _createSampleData() {
    var categoryOne = [
      new OrdinalSales('0:00', 0),
      new OrdinalSales('12:00', 0),
      new OrdinalSales('23:59', 25),
    ];

    var lineOne = [
      new OrdinalSales('0:00', 30),
      new OrdinalSales('12:00', 15),
      new OrdinalSales('23:59', 7),
    ];

    final Color myRed = const Color(0xFFEB4141);
    final Color myDarkBackground = const Color(0xFF101926);

    return [
      new charts.Series<OrdinalSales, String>(
          id: 'CategoryOne',
          colorFn: (_, __) => charts.Color(
              r: myRed.red, g: myRed.green, b: myRed.blue, a: myRed.alpha),
          domainFn: (OrdinalSales sales, _) => sales.year,
          measureFn: (OrdinalSales sales, _) => sales.sales,
          data: categoryOne),
      new charts.Series<OrdinalSales, String>(
          id: 'LineOne ',
          colorFn: (_, __) => charts.Color(
              r: myDarkBackground.red,
              g: myDarkBackground.green,
              b: myDarkBackground.blue,
              a: myDarkBackground.alpha),
          domainFn: (OrdinalSales sales, _) => sales.year,
          measureFn: (OrdinalSales sales, _) => sales.sales,
          data: lineOne)
        ..setAttribute(charts.rendererIdKey, 'LineOne'),
    ];
  }
}

/// Sample ordinal data type.
class OrdinalSales {
  final String year;
  final int sales;
  OrdinalSales(this.year, this.sales);
}

Я использую charts_flutter: ^ 0.5.0

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...