Flutter canvas doesn't keeps the drawing as finger dragged cross the screen

Hi, I’m new to Flutter and studying it by creating a drawing app. It seems that the canvas in Flutter is different than Web canvas. In order to show all the drawing points on the screen, I’ll have to keep repaint at all the positions where a finger has travelled. I know that there is no such thing as double buffer in Flutter, which is probably why it doesn’t keep painting the points automatically. I tried to simulate double buffer by using PictureRecorder but that operation is too expensive. Unfortunately, PictureRecorder doesn’t have a method ‘toPicture’ but only has one to ‘toImage’. Does anyone know a better solution ? I would like to be able to paint a bitmap brush on the screen as finger being dragged.