selectWordsInRange method
void
selectWordsInRange({
- required Offset from,
- Offset? to,
- required SelectionChangedCause cause,
override
Selects the set words of a paragraph in a given range of global positions.
The first and last endpoints of the selection will always be at the beginning and end of a word respectively.
This method is mainly used to translate user inputs in global positions into a TextSelection. When used in conjunction with a EditableText, the selection change is fed back into TextEditingController.selection.
If you have a TextEditingController, it's generally easier to
programmatically manipulate its value
or selection
directly.
Implementation
@override
void selectWordsInRange({
required Offset from,
Offset? to,
required SelectionChangedCause cause,
}) {
// _layoutText(minWidth: constraints.minWidth, maxWidth: constraints.maxWidth);
if (onSelectionChanged == null) {
return;
}
final firstPosition = getPositionForOffset(from);
final firstWord = selectWordAtPosition(firstPosition);
final lastWord =
to == null ? firstWord : selectWordAtPosition(getPositionForOffset(to));
_handleSelectionChange(
TextSelection(
baseOffset: firstWord.base.offset,
extentOffset: lastWord.extent.offset,
affinity: firstWord.affinity,
),
cause,
);
}