gpt4 book ai didi

Flutter 自定义画家类

转载 作者:IT王子 更新时间:2023-10-29 06:44:17 24 4
gpt4 key购买 nike

flutter 中自定义画家类的 shouldRepaint 方法如何工作?我读过 documentation但我不明白如何以及何时向我们提供它。

最佳答案

这是一种提示框架是否需要调用 CustomPainterpaint 方法的方法。

假设您有一个采用颜色的小部件。

class SomeWidget extends StatelessWidget {
final Color color;

SomeWidget(this.color);

@override
Widget build(BuildContext context) {
return new CustomPaint(
painter: new MyPainter(color),
);
}
}

这个 Widget 可以被框架多次重建,但是只要传递给构造函数的 Color 没有改变,并且 CustomPainter 不依赖于任何其他东西,那么重新绘制 CustomPaint 就没有意义。当颜色确实改变时,我们想告诉框架它应该调用 paint。

因此,如果颜色已更改,CustomPainter 可以通过返回 true 来提示框架。

class MyPainter extends CustomPainter {
final Color color;

MyPainter(this.color);

@override
void paint(Canvas canvas, Size size) {
// this paint function uses color
// as long as color is the same there's no point painting again
// so shouldRepaint only returns true if the color has changed
}

@override
bool shouldRepaint(MyPainter oldDelegate) => color != oldDelegate.color;
}

关于Flutter 自定义画家类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50317268/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com