inputEmoji method
void
inputEmoji(
- String displayText
)
Implementation
void inputEmoji(String displayText) {
final TextEditingValue value = textEditingController.value;
final int start = value.selection.start;
int end = value.selection.end;
if (value.selection.isValid) {
String newText = '';
if (value.selection.isCollapsed) {
if (end > 0) {
newText += value.text.substring(0, end);
}
newText += displayText;
if (value.text.length > end) {
newText += value.text.substring(end, value.text.length);
}
} else {
newText = value.text.replaceRange(start, end, displayText);
end = start;
}
textEditingController.value = value.copyWith(
text: newText,
selection: value.selection.copyWith(
baseOffset: end + displayText.length,
extentOffset: end + displayText.length));
} else {
textEditingController.value = TextEditingValue(
text: displayText,
selection: TextSelection.fromPosition(
TextPosition(offset: displayText.length),
),
);
}
SchedulerBinding.instance.addPostFrameCallback((Duration timeStamp) {
textFieldKey.currentState
?.bringIntoView(textEditingController.selection.base);
});
}