В настоящее время это невозможно.
Хотя вы можете редактировать источники флаттера, чтобы сделать это довольно легко.
Следующие правки:
трепетание / Библиотека / SRC / виджеты / editable_text.dart
Изменить _openInputConnection
строку ~ 430 на
void _openInputConnection() {
if (!_hasInputConnection) {
final TextEditingValue localValue = _value;
_lastKnownRemoteTextEditingValue = localValue;
_textInputConnection = TextInput.attach(this,
new TextInputConfiguration(
inputType: widget.keyboardType,
obscureText: widget.obscureText,
autocorrect: widget.autocorrect,
inputAction: widget.keyboardType == TextInputType.multiline
? TextInputAction.newline
: TextInputAction.done
)
)..setEditingState(localValue);
}
_textInputConnection.show();
}
В том же файле также объявите новое поле для EditableText
класса (не состояния) ~ строка 280
final TextInputAction textInputAction;
И назначить его в конструкторе EditableText
над строкой 164
.
this.textInputAction,
трепетание / Библиотека / SRC / материал / text_field.dart
Та же история. Добавьте новое поле, но вместо этого TextField
:
final TextInputAction textInputAction;
и добавьте в его конструктор следующее:
this.textInputAction,
Наконец, передайте это новое поле в качестве параметра в EditableText
строку 479:
textInputAction: widget.textInputAction,
Готово.
Теперь вы можете внутри своего приложения указать пользовательский TextInputAction
. Это не сломает существующий TextField
. Это просто добавляет возможность переопределить поведение по умолчанию.
new TextField(
keyboardType: TextInputType.text,
textInputAction: TextInputAction.newline,
),