Flutter 创建带有颤振的响应散点图
我正在尝试从包fl_图上的散点图小部件创建两个元素的维恩图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
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,
)
),
);
},
)