Метод withinRect
Метод withinRect класса Alignment
делает то же, что alongSize, но прямоугольник может начинаться не в нуле.
К смещению внутри размера прибавляются левый и верхний края.
Синтаксис
Alignment.center.withinRect(Rect.fromLTWH(10, 20, 200, 80))
Параметры
| Параметр | Описание |
|---|---|
rect |
Прямоугольник, внутри которого считают точку. |
Пример
Давайте найдём центр прямоугольника, который начинается в (10, 20):
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: Center(
child: Builder(
builder: (context)
{
Offset point = Alignment.center.withinRect(Rect.fromLTWH(10, 20, 200, 80));
return Text(point.dx.toStringAsFixed(0) + ' x ' + point.dy.toStringAsFixed(0));
},
),
),
),
),
);
}
На экране 110 x 60. Середина 100 x 40 сдвинута на левый и верхний край.
Пример
Давайте найдём левый верхний угол того же прямоугольника:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: Center(
child: Builder(
builder: (context)
{
Offset point = Alignment.topLeft.withinRect(Rect.fromLTWH(10, 20, 200, 80));
return Text(point.dx.toStringAsFixed(0) + ' x ' + point.dy.toStringAsFixed(0));
},
),
),
),
),
);
}
На экране 10 x 20, это сам левый верхний угол.