form-field-package

一个无需样板代码即可构建优雅表单字段的包。表单字段是Form对象的一部分,可以从字段标签到标签样式进行细微定制。这减少了在创建冗长的表单时制作多个表单字段的工作量。

用法

CustomFormField().field(
              question: "Name",
              canBeNull: true,
              formKey: key,
              onSavedCallback: (String val)=>print(val),
              horizontalTextPadding: 20,
              verticalTextPadding: 10,
              labelTextStyle: TextStyle(color: Colors.black),
              icon: const Icon(
                Icons.email_outlined,
                color: Colors.grey,
                size: 25,
              ),
              fieldTextFontSize: 15,
            ),

ss

CanBeNull 参数

您可以将canBeNull属性更改为false,这样当调用key.currentState.save()时,该字段将显示错误。

err

onSavedCallback 参数

这是一个与表单字段一起提供的回调函数,用于定义表单的currentState保存时函数的行为。例如,我们可以声明多个字符串参数,然后使用此参数为它们赋值。

class FormPageState extends State<FormPage> {
  GlobalKey<FormState> key = GlobalKey<FormState>();
  CustomFormField customFormField = CustomFormField();
  String? _name;
  String? _email;
  String? _age;

  @override
  Widget build(BuildContext context) {
    return Form(
        key: key,
        child: Column(
            children: [
                customFormField.field(
                    question: "Name",
                    canBeNull: false,
                    formKey: key,
                    onSavedCallback: (String val)=>_name=val,
                ),
                customFormField.field(
                    question: "Email",
                    canBeNull: false,
                    formKey: key,
                    onSavedCallback: (String val)=>_email=val,
                ),
                customFormField.field(
                    question: "Age",
                    canBeNull: false,
                    formKey: key,
                    onSavedCallback: (String val)=>_age=val,
                ),
                ]
            )
        );
    }
}

所有可定制参数

String question–必填参数,用于指定要询问的问题。bool canBeNull–必填参数,用于指定输入的文本是否可以为空。Function onSavedCallback–必填回调参数,用于定义表单字段在使用key.currentState.save()保存时的行为。GlobalKey<FormState> formKey–当前表单字段所属表单的必填GlobalKey<FormState>密钥。double fieldTextFontSize–可选参数,用于声明字段中文本的大小。String initialValue–可选参数,用于声明预先写入的值。double verticalTextPadding–可选参数,用于声明字段内的垂直内容填充。double horizontalTextPadding–可选参数,用于声明字段内的水平内容填充。Icon icon–可选图标,显示在字段末尾。double borderRadius–可选参数,用于声明字段的边框半径。TextStyle labelTextStyle–可选参数,用于声明标签文本的TextStyle

GitHub

查看 Github