Hola Amigos! На связи Ярослав Цемко, Flutter dev Amiga. Сегодня расскажу про CustomPainter, который позволяет создавать креативные виджеты с индивидуальным дизайном.
Когда вы работаете с CustomPainter, вам потребуется наследоваться от этого класса и определить два ключевых метода:
🟡Paint: Метод, в котором программируется рисование на холсте.
🟡shouldRepaint: Метод, который определяет, должен ли перерисовываться виджет, если класс, где-то обновился, например в StatefulWidget.
Пример:
class MyPainter extends CustomPainter {
@override
void paint(Canvas canvas, Size size) {
Paint paint = Paint();
paint.color = Colors.red;
paint.strokeWidth = 2.0;
Offset center = const Offset(100.0, 100.0);
canvas.drawCircle(center, 50.0, paint);
}
@override
bool shouldRepaint(covariant CustomPainter oldDelegate) {
return false;
}
}
Для работы с CustomPainter нужен виджет CustomPaint, который состоит из:
child: дочерний виджет.painter: любой класс, который наследуется от CustomPainter.
foregroundPainter: параметр, который отвечает за рисование поверх дочернего виджета.IsComplex: в случае, если графика, которую сложно отрисовывать, данный параметр указывает отрисовщику, что он сам должен определять какие части можно закэшировать.willChange: параметр, который определяет будет ли кэшироваться данный виджет.В следующем посте разберём, как на практике использовать CustomPainter. Ставьте 🔥, если ждете!
