GTextField.number constructor

GTextField.number({
  1. Key? key,
  2. String? name,
  3. TextEditingController? controller,
  4. String? initialValue,
  5. String label = 'Number',
  6. String? hint,
  7. TextInputAction textInputAction = TextInputAction.next,
  8. List<TextInputFormatter>? inputFormatters,
  9. NumberValidationConfig validationConfig = const NumberValidationConfig(allowNegative: false, integerOnly: true),
  10. ValidationMessageResolver<NumberValidationIssue> validationMessageResolver = resolveNumberValidationIssue,
  11. GFormValidator? validator,
  12. GTextFieldConfig configure(
    1. GTextFieldConfig config
    )?,
  13. void onChanged(
    1. String
    )?,
  14. void onFieldSubmitted(
    1. String
    )?,
  15. void onSaved(
    1. String?
    )?,
  16. IconData? prefixIcon,
  17. FocusNode? focusNode,
  18. AutovalidateMode? autovalidateMode,
  19. bool? enabled,
  20. bool readOnly = false,
  21. int? maxLength,
  22. TextAlign textAlign = TextAlign.start,
  23. TextStyle? style,
  24. Iterable<String>? autofillHints,
  25. InputDecoration? decoration,
})

Implementation

factory GTextField.number({
  Key? key,
  String? name,
  TextEditingController? controller,
  String? initialValue,
  String label = 'Number',
  String? hint,
  TextInputAction textInputAction = TextInputAction.next,
  List<TextInputFormatter>? inputFormatters,
  NumberValidationConfig validationConfig = const NumberValidationConfig(
    allowNegative: false,
    integerOnly: true,
  ),
  ValidationMessageResolver<NumberValidationIssue> validationMessageResolver =
      resolveNumberValidationIssue,
  GFormValidator? validator,
  GTextFieldConfig Function(GTextFieldConfig config)? configure,
  void Function(String)? onChanged,
  void Function(String)? onFieldSubmitted,
  void Function(String?)? onSaved,
  IconData? prefixIcon,
  FocusNode? focusNode,
  AutovalidateMode? autovalidateMode,
  bool? enabled,
  bool readOnly = false,
  int? maxLength,
  TextAlign textAlign = TextAlign.start,
  TextStyle? style,
  Iterable<String>? autofillHints,
  InputDecoration? decoration,
}) {
  final config = GTextFieldConfig(
    controller: controller,
    name: name,
    initialValue: initialValue,
    label: label,
    hint: hint,
    keyboardType: TextInputType.numberWithOptions(
      signed: validationConfig.allowNegative,
      decimal: !validationConfig.integerOnly,
    ),
    textInputAction: textInputAction,
    inputFormatters: [
      _numberFormatter(validationConfig),
      if (inputFormatters != null) ...inputFormatters,
    ],
    validator: asFormValidator(
      validate: NumberValidator(validationConfig).validate,
      resolve: validationMessageResolver,
      validatorOverride: validator,
    ),
    onChanged: onChanged,
    onFieldSubmitted: onFieldSubmitted,
    onSaved: onSaved,
    prefixIcon: prefixIcon ?? Icons.onetwothree,
    focusNode: focusNode,
    autovalidateMode: autovalidateMode,
    enabled: enabled,
    readOnly: readOnly,
    maxLength: maxLength,
    textAlign: textAlign,
    style: style,
    autofillHints: autofillHints,
    decoration: decoration,
  );

  return GTextField(key: key, config: configure?.call(config) ?? config);
}