Класс TextPosition
Класс TextPosition указывает место в уже свёрстанном тексте.
Поле offset хранит индекс символа.
Его принимает
getOffsetForCaret,
чтобы перевести индекс в координаты каретки.
Синтаксис
TextPosition(offset: 3)
Параметры
| Параметр | Описание |
|---|---|
offset |
Смещение каретки в символах от начала текста. Ноль - перед первым символом. |
Пример
Давайте узнаем сдвиг каретки после трёх символов 'abcde':
import 'package:flutter/material.dart';
void main()
{
var painter = TextPainter(
text: TextSpan(text: 'abcde'),
textDirection: TextDirection.ltr,
);
painter.layout();
var caret = painter.getOffsetForCaret(
TextPosition(offset: 3),
Rect.zero,
);
runApp(
MaterialApp(
home: Scaffold(
body: Center(
child: Text(caret.dx.toStringAsFixed(0)),
),
),
),
);
}
На экране число: горизонтальный сдвиг каретки после трёх символов.
Смотрите также
-
класс
TextPainter,
который верстает абзац и считает каретку -
метод
getOffsetForCaret,
который переводит позицию в координаты -
метод
getPositionForOffset,
который по точке находит индекс символа -
класс
TextSpan,
из которого собран текст для вёрстки