[Flutter] InteractiveViewer와 CustomPaint에서 확대할 때 간헐적으로 화면이 하얗게 변하는 이슈 해결하기

myming·2023년 11월 27일
0

최소 배율 1.0, 최대 배율 3.0으로 설정된 InteractiveViewer에서 child로 CustomPaint를 사용하여 위젯 필기 부분을 그리는 위젯이 있었습니다. 이 위젯을 사용할 때 간헐적으로 확대하거나 축소하는 부분에서 하얀 화면이 나오며 깜빡이거나 하얀색으로 고정되는 이슈가 생겼습니다. 이를 해결하기 위해서 Dart DevTools를 통해 확인해보니 확대할 때 Raster Cache 사용량이 높았습니다.

해결법

CustomPaint 위젯의 isComplex 속성과 willChange 속성이 있는데 이것들을 모두 true로 주면 해결이 됩니다. 이는 복잡한 작업이라는걸 Raster Cache에 알려주고 변경될 수 있다는걸 Raster Cache에서 따로 검사하지 않고 바로 알 수 있게 해줘서 해결이 가능해집니다.

profile
플러터로 개발하는걸 가장 선호합니다.

0개의 댓글