Flutter 创建带有颤振的响应散点图

Flutter 创建带有颤振的响应散点图,flutter,dart,scatter-plot,Flutter,Dart,Scatter Plot,我正在尝试从包fl_图上的散点图小部件创建两个元素的维恩图 scatterPlot(screenSize) { return ListView(children: [ SizedBox( width: 500, height: 500, child: ScatterChart( ScatterChartData( scatterSpots: _c

我正在尝试从包fl_图上的散点图小部件创建两个元素的维恩图

scatterPlot(screenSize) {
    return ListView(children: [
      SizedBox(
        width: 500,
        height: 500,
        child: ScatterChart(
          ScatterChartData(
              scatterSpots:
                  _createSpots(determineCircleLocation(screenSize), screenSize),
              minX: 0,
              minY: 0,
              maxX: screenSize.width,
              maxY: screenSize.height,
              borderData: FlBorderData(show: false),
...
我有一个问题,每当我调整窗口大小时,散射圆都在移动——因此,如果在全屏上,它们似乎没有交点,当我调整屏幕大小时,它们似乎有交点。
我试图把我的情节包装在一个大盒子里,以为这样可以阻止调整大小的副作用,但没有

下面是这个问题的演示

有没有办法防止这种情况发生


在写这篇文章时,我认为通过将
maxX
maxY
更改为一些常量可能会有所帮助,但这会导致最坏的结果。

因为我们设置了一个直接大小(无论它运行在哪个大小),所以出现了这个问题。 您可以检查窗口大小,然后根据窗口大小更新点的半径。 (我计算了一个数字,然后乘以半径)

观看下面的视频。以及:

LayoutBuilder(
  builder: (context, constraints) {
    final size = constraints.biggest.shortestSide;
    final radiusMultiplier = size / 800;
    return Padding(
      padding: const EdgeInsets.only(right: 18.0),
      child: ScatterChart(
          ScatterChartData(
            scatterSpots: [
              ScatterSpot(5, 7, radius: 60 * radiusMultiplier,),
              ScatterSpot(8, 4, radius: 20 * radiusMultiplier,),
              ScatterSpot(3, 8, radius: 70 * radiusMultiplier),
            ],
            minX: 1,
            maxX: 10,
            minY: 1,
            maxY: 10,
          )
      ),
    );
  },
)