createTextField static method

Widget createTextField(
  1. dynamic context,
  2. dynamic ctr,
  3. dynamic currentFocus,
  4. dynamic nextFocus,
  5. dynamic hintText, {
  6. dynamic isPassword = false,
  7. dynamic readOnly = false,
  8. dynamic inputAction = TextInputAction.next,
  9. Widget? suffixIcon,
  10. dynamic onPressIcon,
  11. dynamic inputType = TextInputType.text,
  12. dynamic maxLength,
  13. dynamic maxLines = 1,
  14. dynamic padding,
  15. dynamic fontSize,
  16. dynamic textColor = Colors.black,
  17. Function? onSubmit,
  18. Function? onChanged,
  19. dynamic inputFormatters,
  20. double sizeBorder = 5.0,
})

Implementation

static Widget createTextField(context, ctr, currentFocus, nextFocus, hintText,
    {isPassword = false, readOnly = false, inputAction = TextInputAction.next,
      Widget? suffixIcon, onPressIcon, inputType = TextInputType.text,
      maxLength, maxLines = 1, padding, fontSize, textColor = Colors.black,
      Function? onSubmit, Function? onChanged, inputFormatters, double sizeBorder = 5.0}) {

  final enabledBorder = OutlineInputBorder(
      borderRadius: BorderRadius.circular(sizeBorder),
      borderSide:  BorderSide(color: Color(0xFFD5D5D5), width: 0.5));

  inputFormatters ??= <TextInputFormatter>[
    LengthLimitingTextInputFormatter(maxLength??1000000000)
  ];

  InputDecoration decoration;
  if (suffixIcon == null) {
    decoration = InputDecoration(
        filled: true,
        fillColor: Colors.white,
        contentPadding: padding??EdgeInsets.fromLTRB(15.sp, 0, 15.sp, 0),
        hintText: hintText,
        border: enabledBorder,
        enabledBorder: enabledBorder);
  } else {
    decoration = InputDecoration(
        filled: true,
        fillColor: Colors.white,
        contentPadding: padding ?? EdgeInsets.fromLTRB(15.sp, 0, 15.sp, 0),
        suffixIcon: IconButton(onPressed: onPressIcon, icon: suffixIcon),
        hintText: hintText,
        border: enabledBorder,
        enabledBorder: enabledBorder
    );
  }

  return TextField(
      style: TextStyle(color: textColor, fontSize: fontSize??40.sp),
      maxLines: maxLines,
      focusNode: currentFocus,
      onSubmitted: (term) {
        currentFocus.unfocus();
        if (context != null && nextFocus != null) FocusScope.of(context).requestFocus(nextFocus);
        if (inputAction == TextInputAction.done && onSubmit != null) onSubmit();
      },
      onChanged: (value) {
        if (onChanged != null) onChanged(ctr, value);
      },
      controller: ctr,
      textInputAction: inputAction,
      obscureText: isPassword,
      decoration: decoration,
      readOnly: readOnly,
      keyboardType: inputType,
      inputFormatters: inputFormatters);
}