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

Виджет CustomPaint

Виджет CustomPaint вызывает CustomPainter, чтобы нарисовать фигуры на Canvas. Объект рисования передают в painter. Дочерний виджет можно положить поверх рисунка, а можно не задавать.

Синтаксис

CustomPaint( painter: painter, child: child, )

Параметры

Параметр Описание
painter Объект, который рисует на холсте до дочернего виджета.
child Дочерний виджет поверх рисунка. Можно не задавать.

Пример

Давайте нарисуем синий прямоугольник кистью:

import 'package:flutter/material.dart'; void main() { runApp( MaterialApp( home: Scaffold( body: Center( child: CustomPaint( painter: _BoxPainter(), child: SizedBox(width: 160, height: 80), ), ), ), ), ); } class _BoxPainter extends CustomPainter { @override void paint(Canvas canvas, Size size) { Paint paint = Paint()..color = Color(0xFF1565C0); canvas.drawRect(Offset.zero & size, paint); } @override bool shouldRepaint(covariant CustomPainter oldDelegate) { return false; } }

На экране синий прямоугольник 160 на 80.

Пример

Давайте поверх заливки положим строку дочерним виджетом:

import 'package:flutter/material.dart'; void main() { runApp( MaterialApp( home: Scaffold( body: Center( child: CustomPaint( painter: _BoxPainter(), child: SizedBox( width: 160, height: 80, child: Center( child: Text( '12345', style: TextStyle(color: Color(0xFFFFFFFF)), ), ), ), ), ), ), ), ); } class _BoxPainter extends CustomPainter { @override void paint(Canvas canvas, Size size) { Paint paint = Paint()..color = Color(0xFF2E7D32); canvas.drawRect(Offset.zero & size, paint); } @override bool shouldRepaint(covariant CustomPainter oldDelegate) { return false; } }

На экране зелёный прямоугольник и белая строка '12345' по центру.

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

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