Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
111 of 1024 menu
◀ ▶

Метод 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,
    который сам управляет выделением на экране
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить