flutter: сделайте так, чтобы слои рисунка CustomPaint дополняли друг друга, а не смешивались друг с другом - PullRequest
2 голосов
/ 03 августа 2020

Я рисую два слоя графиков на одном CustomPaint. Первый закроет половину второго слоя.

Проблема

В настоящее время я просто рисую первые данные, а затем вторые данные, используя два Paint s, с их набором blendMode.

Это создает наложение двух данных, которые смешиваются. Но мне не нужно смешивание, просто область различия, которую нужно закрасить, используя второй Paint, то есть дополнительный составной вид.

Что касается производительности, я не знаю, будет ли смешивание иметь внутреннюю оптимизацию, чтобы избежать рисования закрытой части.

Контрольное изображение

введите описание изображения здесь

Обратите внимание, что все эти графики данных смешиваются, но мне просто нужно, чтобы они перекрывали друг друга, в то время как перекрывающиеся части вообще не отображаются для производительности.

Попытки

Я мог бы использовать новый путь только для того, чтобы показать разницу, но я не уверен, что это самый простой способ.

Я проверил RepaintBoundary, но это виджет, который обрабатывает нечастые изменения данных, не совсем то, что Мне нужно здесь.

Точно так же Overlay кажется автономным виджетом, поэтому я не знаю, как его разместить в CustomPaint.

Вопрос

Есть ли стандартный способ добиться нужной мне окклюзии?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...