Метод lerp
Метод lerp класса Alignment
смешивает горизонталь и вертикаль двух точек.
Координаты лежат от -1 до 1. Середина между противоположными углами это центр.
Синтаксис
Alignment.lerp(Alignment.topLeft, Alignment.bottomRight, 0.5)
Параметры
| Параметр | Описание |
|---|---|
a |
Первая точка. |
b |
Вторая точка. |
t |
Доля смешивания от 0 до 1.
|
Пример
Давайте возьмём середину между левым верхним и правым нижним углом:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: Center(
child: Builder(
builder: (context)
{
Alignment point = Alignment.lerp(Alignment.topLeft, Alignment.bottomRight, 0.5)!;
Offset spot = point.alongSize(Size(2, 2));
return Text(spot.dx.toStringAsFixed(0) + ' x ' + spot.dy.toStringAsFixed(0));
},
),
),
),
),
);
}
На экране 1 x 1. На размере 2 на 2 это центр: доли -1 и 1 сошлись в 0.
Пример
Давайте оставим левый верхний угол:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: Center(
child: Builder(
builder: (context)
{
Alignment point = Alignment.lerp(Alignment.topLeft, Alignment.bottomRight, 0)!;
Offset spot = point.alongSize(Size(2, 2));
return Text(spot.dx.toStringAsFixed(0) + ' x ' + spot.dy.toStringAsFixed(0));
},
),
),
),
),
);
}
На экране 0 x 0. Доля 0 оставляет первую точку, а левый верхний угол размера лежит в нуле.
Смотрите также
-
метод
alongSize,
который переводит точку выравнивания в пиксели заданного размера -
метод
withinRect,
который переводит точку выравнивания в координаты внутри прямоугольника -
метод
resolve,
который переводит начало и конец строки в левый и правый край -
класс
Align,
который ставит дочерний виджет в выбранную точку