maxYAxisWidth static method

double maxYAxisWidth(
  1. ChartAxis yAxis
)

Implementation

static double maxYAxisWidth(ChartAxis yAxis) {
  Size getTextAreaSize(String text, TextStyle textStyle) {
    TextPainter textPainter = TextPainter(
      text: TextSpan(text: text, style: textStyle),
      textDirection: TextDirection.ltr,
      maxLines: 2,
    )..layout(maxWidth: 50, minWidth: 0);

    double textWidth = textPainter.size.width;
    double textHeight = textPainter.size.height;

    return Size(textWidth, textHeight);
  }

  if (yAxis.axisItemList.isNotEmpty) {
    //确定y轴文本最大宽度,以及每个文本大小
    yAxis.axisItemList.forEach((AxisItem item) {
      Size textSize = getTextAreaSize(item.showText, yAxis.textStyle);
      item.textSize = textSize;
      if (textSize.width > yAxis.maxTextWidth) {
        yAxis.maxTextWidth = textSize.width;
      }
    });
  }
  return yAxis.maxTextWidth + 10;
}