Метод getPositionForOffset
Метод getPositionForOffset класса
TextPainter принимает Offset относительно начала блока
и возвращает TextPosition ближайшего символа.
Вызывают после layout
для обработки нажатий и выделения.
Синтаксис
painter.getPositionForOffset(offset)
Параметры
| Параметр | Описание |
|---|---|
offset |
Точка в координатах текстового блока после layout. |
Пример
Давайте получим индекс символа у левого края:
import 'package:flutter/material.dart';
void main()
{
TextPainter painter = TextPainter(
text: TextSpan(text: 'abcde'),
textDirection: TextDirection.ltr,
);
painter.layout(maxWidth: 200);
int res = painter.getPositionForOffset(Offset.zero).offset;
print(res);
}
Результат выполнения кода:
0
Пример
Давайте кликнем далеко справа и получим конец строки:
import 'package:flutter/material.dart';
void main()
{
TextPainter painter = TextPainter(
text: TextSpan(text: 'abcde'),
textDirection: TextDirection.ltr,
);
painter.layout(maxWidth: 200);
int res = painter.getPositionForOffset(Offset(500, 0)).offset;
print(res);
}
Результат выполнения кода:
5
Смотрите также
-
метод
getOffsetForCaret,
который переводит позицию в координаты каретки -
метод
layout,
который задаёт геометрию блока -
метод
computeLineMetrics,
который описывает строки текста -
класс
TextPainter,
к которому относится метод