textField method

  1. @override
Widget textField()
override

Implementation

@override
Widget textField() => Focus(
      focusNode: focusNode,
      onFocusChange: (bool haveFocus) {
        if (!haveFocus) {
          validate();
          widget.onUnfocus?.call();
        }
      },
      canRequestFocus: false,
      child: AnimatedContainer(
        duration: const Duration(milliseconds: 200),
        height: textFieldHeight,
        child: TextField(
          key: _containerKey,
          autofocus: widget.autofocus,
          readOnly: widget.readOnly,
          obscureText: obscure,
          maxLines: null,
          autocorrect: false,
          autofillHints: widget.autofillHints,
          textCapitalization: TextCapitalization.none,
          controller: controller,
          onChanged: onChanged,
          keyboardType: widget.keyboardType,
          inputFormatters: inputFormatters,
          style: TextStyle(
            color: widget.readOnly ? Colors.grey.shade800 : null,
          ),
          decoration: InputDecoration(
            border: InputBorder.none,
            contentPadding: const EdgeInsets.symmetric(horizontal: 8),
            isDense: true,
            labelText: labelText,
            hintText: widget.hintText,
            hintStyle: const TextStyle(
              fontWeight: FontWeight.w400,
            ),
            enabledBorder: InputBorder.none,
            focusedBorder: InputBorder.none,
            errorBorder: InputBorder.none,
            disabledBorder: InputBorder.none,
            isCollapsed: false,
            fillColor: null,
          ),
          onSubmitted: (_) => widget.onSubmit?.call(),
        ),
      ),
    );