CryInput constructor

CryInput({
  1. Key? key,
  2. double? width,
  3. double? padding,
  4. double? contentPadding,
  5. int? maxLines,
  6. String? label,
  7. String? value,
  8. ValueChanged? onChange,
  9. FormFieldSetter<String>? onSaved,
  10. FormFieldValidator<String>? validator,
  11. bool? enable,
  12. bool required = false,
  13. List<TextInputFormatter>? inputFormatters,
})

Implementation

CryInput({
  Key? key,
  double? width,
  double? padding,
  double? contentPadding,
  int? maxLines,
  String? label,
  String? value,
  ValueChanged? onChange,
  FormFieldSetter<String>? onSaved,
  FormFieldValidator<String>? validator,
  bool? enable,
  bool required = false,
  List<TextInputFormatter>? inputFormatters,
}) : super(
        key: key,
        width: width,
        padding: padding,
        builder: (CryFormFieldState state) {
          return TextFormField(
            maxLines: maxLines,
            decoration: InputDecoration(
              enabled: enable ?? true,
              labelText: label,
              contentPadding: EdgeInsets.symmetric(horizontal: contentPadding ?? 10),
            ),
            controller: TextEditingController(text: value),
            inputFormatters: inputFormatters ?? [],
            onChanged: (v) {
              if (onChange != null) {
                onChange(v);
              }
            },
            onSaved: (v) {
              if (onSaved != null) {
                onSaved(v);
              }
            },
            validator: (v) {
              if (required && v!.isEmpty) {
                return '必填';
              }
              if (validator != null) {
                return validator(v);
              }
              return null;
            },
          );
        },
      );