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,
),
CanBeNull 参数
您可以将canBeNull属性更改为false,这样当调用key.currentState.save()时,该字段将显示错误。
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。

