Я пытался разработать приложение для рисования, и все примеры кода, включая код из The Boring Flutter Development Show, не очень хорошо подходят для реального использования.
Основная проблема в том, что CustomPaint
рисовать слишком дорого и перерисовывать aws каждую точку, каждый кадр. И поскольку точки увеличиваются, время рендеринга приложения flutter на кадр значительно увеличивается
Со времени, которое я потратил на поиск решения этой проблемы, я нашел эти
RepaintBoundary
: Растрирует слои
Пользовательский виджет с использованием SingleChildRenderObjectWidget
и RenderProxyBox
: должен реализовывать метод рисования и не передавать контроллер
Я не думаю, что какое-либо из вышеперечисленных решений подходит для моих нужд: плавные операции рисования холста без повторного рисования. Я даже попытался упростить точки, и это не сработало из-за внутреннего механизма CustomPaint
. Если бы был способ передать холст в качестве виджета и прикрепить контроллер, это было бы легко сохраните захваченные точки и используйте базовые c операции холста, такие как canvas.drawPath()
или canvas.drawLine()
, очень эффективно
Любое предложение будет полезным. Спасибо!