Метод getOffsetForCaret
Метод getOffsetForCaret класса
TextPainter принимает TextPosition и Rect якоря,
возвращает Offset для рисования каретки.
Нужен после layout.
Синтаксис
painter.getOffsetForCaret(position, caretPrototype)
Параметры
| Параметр | Описание |
|---|---|
position |
Индекс символа в тексте. Тип TextPosition.
|
caretPrototype |
Прямоугольник высоты каретки. Задаёт вертикальный размер курсора. |
Пример
Давайте найдём горизонтальную координату начала строки:
import 'package:flutter/material.dart';
void main()
{
TextPainter painter = TextPainter(
text: TextSpan(text: 'abcde'),
textDirection: TextDirection.ltr,
);
painter.layout(maxWidth: 200);
double res = painter.getOffsetForCaret(
TextPosition(offset: 0),
Rect.fromLTWH(0, 0, 2, 16),
).dx;
print(res);
}
Результат выполнения кода:
0.0
Пример
Давайте возьмём координату Y каретки у начала:
import 'package:flutter/material.dart';
void main()
{
TextPainter painter = TextPainter(
text: TextSpan(
text: 'abcde',
style: TextStyle(fontSize: 16),
),
textDirection: TextDirection.ltr,
);
painter.layout(maxWidth: 200);
double res = painter.getOffsetForCaret(
TextPosition(offset: 0),
Rect.fromLTWH(0, 0, 2, 16),
).dy;
print(res);
}
Результат выполнения кода:
0.0
Смотрите также
-
метод
getPositionForOffset,
который делает обратное: точка в текстовую позицию -
метод
layout,
который готовит разметку перед расчётом каретки -
класс
TextPainter,
к которому относится метод -
виджет
SelectableText,
который сам управляет выделением на экране