Не удается создать объект Color во Flutter - PullRequest
0 голосов
/ 17 июня 2020

Я новичок во Flutter и прохожу обучение charts_flutter . Я пытаюсь создать объект Color, как определено в руководстве, однако у меня возникла ошибка компиляции. Документация в учебнике определяет создание цвета следующим образом:

Color(0xFF3366cc) //causes error

Однако, когда я пробую это, я получаю следующую ошибку при попытке сборки:

Too many positional arguments: 0 expected, but 1 found.

Код:

import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:charts_common/common.dart';
import 'package:charts_flutter/flutter.dart' as charts;
import 'package:font_awesome_flutter/font_awesome_flutter.dart';

class GaugeLineChart extends StatefulWidget {

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

class _GaugeLineChartState extends State<GaugeLineChart> {

  List<charts.Series<GaugeFlowReading, dynamic>> _flowSeries;

  _getReadingData() {
    List<GaugeFlowReading> flows = [];
    for(int i = 0; i < 100; i++) {
      flows.add(GaugeFlowReading(i * 1000, DateTime.now().subtract(Duration(hours: i)), Color(0xffb74093))); // error on Color object here
    }

    _flowSeries.add(
      charts.Series(
        data: flows,
        domainFn: (GaugeFlowReading reading, _) => reading.timestamp,
        measureFn: (GaugeFlowReading reading, _) => reading.flow,
      )
    );

  }

  Widget build(BuildContext context) {
    return Center(child: Text("*CHART GOES HERE*"));
  }
}

class GaugeFlowReading {
  int flow;
  DateTime timestamp;
  Color color;
  GaugeFlowReading(this.flow, this.timestamp, this.color);
}

Мне пока не удалось найти ответ на этот вопрос. Может ли кто-нибудь прояснить, почему это происходит, или помочь с этим?

Ответы [ 2 ]

1 голос
/ 17 июня 2020

Кажется, пакет import 'package:charts_common/common.dart'; имеет свой собственный класс Color, вы можете изменить его на

import 'package:charts_common/common.dart' hide Color;

или

import 'package:charts_common/common.dart' as charts_common;

, чтобы компилятор обнаружил, что вы действительно используете класс Color для фреймворка

1 голос
/ 17 июня 2020

Пробовал ваш код, и ошибка действительно существует.

В качестве альтернативы вы можете попробовать это.

Color.fromHex(code: "b74093")

Это также кажется конфликтной проблемой с используемыми вами пакетами.

enter image description here

Когда я прокомментировал импорт charts_common, обнаруженная вами ошибка исчезла.

enter image description here

...