Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 水平滚动图表的性能很差_Flutter_Dart_Charts - Fatal编程技术网

Flutter 水平滚动图表的性能很差

Flutter 水平滚动图表的性能很差,flutter,dart,charts,Flutter,Dart,Charts,我想实现一个水平滚动的折线图。问题是当使用下面的代码时,性能相当差。可能是因为整个图表都被渲染了 是否有方法仅渲染所示图表中的零件?还是有更好的方法 @覆盖 小部件构建(构建上下文){ 返回SingleChildScrollView( 物理:弹跳CrollPhysics(), 滚动方向:轴水平, 孩子:定制油漆( 尺寸:尺寸(2000200), 画家:图表画家(点), ), ); } 我可以解决这个问题,但必须用不同的方法来解决。取而代之的是一个宽的图表,它也必须在视图之外渲染,我将chartp

我想实现一个水平滚动的折线图。问题是当使用下面的代码时,性能相当差。可能是因为整个图表都被渲染了

是否有方法仅渲染所示图表中的零件?还是有更好的方法

@覆盖
小部件构建(构建上下文){
返回SingleChildScrollView(
物理:弹跳CrollPhysics(),
滚动方向:轴水平,
孩子:定制油漆(
尺寸:尺寸(2000200),
画家:图表画家(点),
),
);
}

我可以解决这个问题,但必须用不同的方法来解决。取而代之的是一个宽的图表,它也必须在视图之外渲染,我将
chartpainer
更改为只绘制可见的点。我添加了“滚动”行为,通过监听控制器并将位置传递给
ChartPainter
,这将比使用位置一致地移动点更有效

@覆盖
void initState(){
super.initState();
最终控制器=widget.controller;
controller.addListener(){
if(控制器位置尺寸){
设置状态(){
offsetX=-controller.position.pixels;
});
}
});
}
@凌驾
小部件构建(构建上下文){
返回SingleChildScrollView(
物理:弹跳CrollPhysics(),
滚动方向:轴水平,
子项:SizedBox.expand(
定制油漆(
绘制者:图表绘制者(点、偏移量),
),
),
);
}