[英]Flutter InteractiveViewer with CustomPaint
當使用InteractiveViewer
縮放和移動時,會觸發CustomPaint
的paint
方法。 如何防止?
...
InteractiveViewer(
child: CustomPaint(
painter: TestPainter(),
),
),
...
class TestPainter extends CustomPainter {
@override
void paint(Canvas canvas, Size size) {
print('painting...');
}
@override
bool shouldRepaint(CustomPainter oldDelegate) {
return false;
}
}
嘗試在 RepaintBoundary 中包含您的 CustomPaint
例如
final List<Widget> desks = _mapDataState.mapObjects.desks
.map((desk) => RepaintBoundary(
child: CustomPaint(
size: Size.infinite,
painter: DeskPainter(desk),
),
))
.toList();
return InteractiveViewer(
maxScale: 6,
minScale: 0.3,
child: CustomPaint(
size: Size.infinite,
painter: MapPainter(snapshot.data),
child: Stack(
children: desks,
),
),
);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.