Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
281 of 1024 menu
◀ ▶

Метод shouldRepaint

Метод shouldRepaint класса CustomPainter сравнивает новый painter со старым. Истина заставляет перерисовать кадр, ложь оставляет прежний рисунок. Сравнивают поля нового художника и прежнего.

Синтаксис

bool shouldRepaint(covariant CustomPainter oldDelegate)

Пример

Давайте вернём false из shouldRepaint:

import 'package:flutter/material.dart'; void main() { runApp( MaterialApp( home: Scaffold( body: Center( child: CustomPaint( size: const Size(220, 100), painter: _RepaintPainter(), ), ), ), ), ); } class _RepaintPainter extends CustomPainter { @override void paint(Canvas canvas, Size size) { canvas.drawCircle(Offset(110, 50), 30, Paint()..color = Colors.teal); } @override bool shouldRepaint(covariant CustomPainter oldDelegate) => false; }

CustomPaint не перерисовывается без нового painter.

Пример

Давайте нарисуем другой цвет тем же painter:

import 'package:flutter/material.dart'; void main() { runApp( MaterialApp( home: Scaffold( body: Center( child: CustomPaint( size: const Size(220, 100), painter: _RepaintPainter2(), ), ), ), ), ); } class _RepaintPainter2 extends CustomPainter { @override void paint(Canvas canvas, Size size) { canvas.drawCircle(Offset(110, 50), 30, Paint()..color = Colors.deepOrange); } @override bool shouldRepaint(covariant CustomPainter oldDelegate) => false; }

На экране оранжевый круг при новом экземпляре painter.

Смотрите также

  • виджет CustomPaint,
    свой рисунок
  • виджет RotatedBox,
    поворот на четверти оборота
  • класс Canvas,
    холст внутри CustomPainter
  • класс Paint,
    кисть холста
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить