buildTextField method
TextField
buildTextField(
- Set<
WidgetState> states, { - String? label,
- String? placeholder,
- bool autoFocus = false,
- bool readOnly = false,
- int maxLines = 1,
- FocusNode? focusNode,
- TextInputType? keyboardType,
- TextInputAction? textInputAction,
- List<
TextInputFormatter> ? inputFormatters, - TextEditingController? controller,
- ValueChanged<
String> ? onValueChanged,
Implementation
TextField buildTextField(
Set<WidgetState> states, {
String? label,
String? placeholder,
bool autoFocus = false,
bool readOnly = false,
int maxLines = 1,
FocusNode? focusNode,
TextInputType? keyboardType,
TextInputAction? textInputAction,
List<TextInputFormatter>? inputFormatters,
TextEditingController? controller,
ValueChanged<String>? onValueChanged,
}) {
final isDisabled = states.contains(WidgetState.disabled);
final isMultiline = maxLines > 1;
final inputDecoration = InputDecoration(
border: InputBorder.none,
hintText: placeholder ?? label,
hintStyle: hintStyle.resolve(states),
isCollapsed: true,
contentPadding: const EdgeInsets.symmetric(vertical: 5),
);
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: textStyle.resolve(states),
decoration: inputDecoration,
maxLines: maxLines,
scrollPhysics: const BouncingScrollPhysics(),
scrollPadding: const EdgeInsets.all(8),
obscureText: obscureText,
inputFormatters: inputFormatters ?? this.inputFormatters,
keyboardType: _resolveKeyboardType(isDisabled, readOnly, isMultiline, keyboardType),
textInputAction: _resolveTextInputAction(isMultiline, textInputAction),
textAlignVertical: isMultiline ? TextAlignVertical.top : TextAlignVertical.center,
onChanged: onValueChanged,
);
}