var focusNode = FocusNode();
RegExp englishRegExp = RegExp(r'(^[a-zA-Z]*$)');
String inputText = '';
showKeyboard() {
focusNode.requestFocus();
}
dismissKeyboard() {
focusNode.unfocus();
}
getTextField() {
var currentModel = currentItem();
return TextField(
controller: controller,
focusNode: focusNode,
style: TextStyle(color: Colors.transparent),
showCursor: false,
enableInteractiveSelection: false,
keyboardType: TextInputType.visiblePassword,
decoration: InputDecoration(
border: InputBorder.none,
),
onChanged: (value) {
var length = value.length - inputText.length;
if (length > 1) {
controller.value = TextEditingValue(
text: inputText,
selection: TextSelection.collapsed(offset: inputText.length));
return;
}
if (!englishRegExp.hasMatch(value)) {
controller.value = TextEditingValue(
text: inputText,
selection: TextSelection.collapsed(offset: inputText.length));
return;
}
setState(() {
if (length == -1 || length == 1) {
inputText = value;
}
controller.value = TextEditingValue(
text: inputText,
selection: TextSelection.collapsed(offset: inputText.length));
});
inputWordCompleted();
},
);
}