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

Класс RRect

Класс RRect хранит прямоугольник и радиусы углов. Его рисует Canvas командой drawRRect. Обычная вёрстка чаще берёт BorderRadius внутри BoxDecoration, а не этот класс напрямую.

Синтаксис

RRect.fromRectAndRadius(rect, Radius.circular(12))

Методы

Метод Описание
contains Проверяет, лежит ли точка внутри скруглённого прямоугольника.
deflate Сжимает скруглённый прямоугольник и сохраняет радиусы углов.
fromLTRBR Собирает скруглённый прямоугольник из четырёх краёв и одного радиуса.
fromRectAndRadius Скругляет прямоугольник одним радиусом на всех углах.
inflate Расширяет скруглённый прямоугольник и сохраняет радиусы углов.
shift Сдвигает скруглённый прямоугольник, не меняя размер и радиусы.

Пример

Давайте скруглённый Rect:

import 'package:flutter/material.dart'; void main() { runApp( MaterialApp( home: Scaffold( body: Center( child: CustomPaint( size: const Size(220, 100), painter: _RRectDemo(), ), ), ), ), ); } class _RRectDemo extends CustomPainter { @override void paint(Canvas canvas, Size size) { final rr = RRect.fromRectAndRadius(Rect.fromLTWH(20, 15, 180, 70), Radius.circular(16)); canvas.drawRRect(rr, Paint()..color = Colors.lime); } @override bool shouldRepaint(covariant CustomPainter oldDelegate) => false; }

На экране скруглённый лаймовый блок.

Пример

Давайте другой радиус:

import 'package:flutter/material.dart'; void main() { runApp( MaterialApp( home: Scaffold( body: Center( child: CustomPaint( size: const Size(220, 100), painter: _RRectDemo2(), ), ), ), ), ); } class _RRectDemo2 extends CustomPainter { @override void paint(Canvas canvas, Size size) { final rr = RRect.fromRectAndRadius(Rect.fromLTWH(20, 15, 180, 70), Radius.circular(32)); canvas.drawRRect(rr, Paint()..color = Colors.lime.shade700); } @override bool shouldRepaint(covariant CustomPainter oldDelegate) => false; }

На экране более круглые углы.

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

  • класс Rect,
    прямоугольник
  • класс Size,
    ширина и высота
  • виджет ColoredBox,
    залить дочерний виджет цветом
  • виджет DecoratedBox,
    нарисовать BoxDecoration
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить