Estoy tratando de cambiar el icono de la leyenda de círculo a rectángulo para mi gráfico circular. Estoy usando las líneas a continuación para eso, pero recibo un error de inmediato.

defaultRenderer: new charts.ArcRendererConfig(
          symbolRenderer: new IconRenderer(Icons.cloud)
      ),

Recibo el error (captura de pantalla adjunta) ayúdame a cambiar el ícono predeterminado de la leyenda en el gráfico circular.

1
Bala 28 abr. 2020 a las 19:21

2 respuestas

La mejor respuesta

Gracias @Midhun MP por la pista, en realidad necesitamos usar CustomSymbolRenderer en lugar de SymbolRenderer. El siguiente código resolvió mi problema

class IconRenderer extends charts.CustomSymbolRenderer {
  final IconData iconData;

  IconRenderer(this.iconData);

  @override
  Widget build(BuildContext context, {Size size, Color color, bool enabled}) {
    // Lighten the color if the symbol is not enabled
    // Example: If user has tapped on a Series deselecting it.
    if (!enabled) {
      color = color.withOpacity(0.26);
    }
    return new SizedBox.fromSize(
        size: size, child: new Icon(iconData, color: color, size: 12.0));
  }
}
0
Bala 30 abr. 2020 a las 15:37

Obtiene ese error porque no hay una clase IconRenderer por defecto. Debe crear un SymbolRenderer personalizado como se muestra a continuación:

class IconRenderer extends charts.SymbolRenderer {
  final IconData iconData;

  IconRenderer(this.iconData);

  @override
  Widget build(BuildContext context,
      {Size size, Color color, bool isSelected}) {
    return new SizedBox.fromSize(
        size: size, child: new Icon(iconData, color: color, size: 12.0));
  }
}

Referencia legend_custom_symbol

0
Midhun MP 28 abr. 2020 a las 19:13