buildTextField method
Widget
buildTextField(
- Set<
WidgetState> states, { - bool autoFocus = false,
- bool readOnly = false,
- int maxLines = 1,
- FocusNode? focusNode,
- TextInputType? keyboardType,
- TextInputAction? textInputAction,
- List<
TextInputFormatter> ? inputFormatters, - TextEditingController? controller,
- ValueChanged<
String> ? onValueChanged, - VoidCallback? onTap,
- required InputDecoration inputDecoration,
Builds a raw TextField with the theme applied.
Implementation
Widget buildTextField(
Set<WidgetState> states, {
bool autoFocus = false,
bool readOnly = false,
int maxLines = 1,
FocusNode? focusNode,
TextInputType? keyboardType,
TextInputAction? textInputAction,
List<TextInputFormatter>? inputFormatters,
TextEditingController? controller,
ValueChanged<String>? onValueChanged,
VoidCallback? onTap,
required InputDecoration inputDecoration,
}) {
final isDisabled = states.contains(WidgetState.disabled);
final isMultiline = maxLines > 1;
final style = textStyle.resolve(states).copyWith(fontSize: fieldFontSize);
return TextField(
controller: controller,
readOnly: readOnly,
enableInteractiveSelection: !readOnly,
autofocus: autoFocus,
focusNode: focusNode,
enabled: !isDisabled,
textCapitalization: textCapitalization,
autocorrect: autocorrect,
enableSuggestions: enableSuggestions,
maxLength: maxLength,
maxLengthEnforcement: maxLengthEnforcement,
cursorHeight: fieldFontSize + 2,
style: style,
decoration: inputDecoration,
expands: maxLines == 1,
minLines: maxLines > 1 ? maxLines : null,
maxLines: null,
scrollPhysics: const BouncingScrollPhysics(),
scrollPadding: const EdgeInsets.all(8),
obscureText: obscureText,
inputFormatters: inputFormatters ?? this.inputFormatters,
keyboardType: _resolveKeyboardType(isDisabled, readOnly, isMultiline, keyboardType),
textInputAction: _resolveTextInputAction(isMultiline, textInputAction),
onChanged: onValueChanged,
onTap: onTap,
);
}