Метод contains
Метод contains класса RRect
возвращает истину, если точка внутри фигуры с учётом скругления.
Угол описанного прямоугольника может оказаться уже снаружи, если радиус его срезал.
Синтаксис
rrect.contains(Offset(50, 50))
Параметры
| Параметр | Описание |
|---|---|
point |
Проверяемая точка. |
Пример
Давайте проверим центр квадрата со скруглёнными углами:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: Center(
child: Builder(
builder: (context)
{
RRect shape = RRect.fromRectAndRadius(Rect.fromLTWH(0, 0, 100, 100), Radius.circular(40));
bool yes = shape.contains(Offset(50, 50));
return Text(yes ? 'abcde' : '12345');
},
),
),
),
),
);
}
На экране abcde: центр внутри.
Пример
Давайте проверим самый угол, который срезал радиус:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: Center(
child: Builder(
builder: (context)
{
RRect shape = RRect.fromRectAndRadius(Rect.fromLTWH(0, 0, 100, 100), Radius.circular(40));
bool yes = shape.contains(Offset(1, 1));
return Text(yes ? 'abcde' : '12345');
},
),
),
),
),
);
}
На экране 12345: точка в углу описанного квадрата, но за дугой скругления.
Смотрите также
-
метод
fromRectAndRadius,
который скругляет прямоугольник одним радиусом на всех углах -
метод
fromLTRBR,
который собирает скруглённый прямоугольник из краёв и одного радиуса -
метод
inflate,
который расширяет скруглённый прямоугольник и сохраняет радиусы -
класс
Rect,
который хранит прямоугольник без скругления