Android 颤振/飞镖:如何向单选按钮(如TextFormField)添加验证?

Android 颤振/飞镖:如何向单选按钮(如TextFormField)添加验证?,android,flutter,dart,Android,Flutter,Dart,如何向颤振中的单选按钮添加验证?我知道有一个叫做的软件包,但我不想用它。有没有办法将验证添加到单选按钮?我想它验证它使用formkey,我不能发布代码,因为整个表单是动态的,我没有权限发布在线代码,所以任何帮助都是感激的。我可以定制一个单选按钮吗?我知道有点晚了。例如,只需使用FormBuilder即可 或者,如果在Form()中使用它,这是一个示例: FormField( builder: (FormFieldState<bool> state) {

如何向颤振中的单选按钮添加验证?我知道有一个叫做的软件包,但我不想用它。有没有办法将验证添加到单选按钮?我想它验证它使用formkey,我不能发布代码,因为整个表单是动态的,我没有权限发布在线代码,所以任何帮助都是感激的。我可以定制一个单选按钮吗?

我知道有点晚了。例如,只需使用FormBuilder即可

或者,如果在Form()中使用它,这是一个示例:

FormField(
                builder: (FormFieldState<bool> state) {
                  return Padding(
                      padding: EdgeInsets.all(10),
                      child: Column(
                        crossAxisAlignment: CrossAxisAlignment.start,
                        children: [
                          Text('Where is occurrence happened?'),
                          state.hasError
                              ? Text(
                                  state.errorText,
                                  style: TextStyle(color: Colors.red),
                                )
                              : Container(),
                          RadioListTile(
                            ...
                            onChanged: (SomeValueType value) {
                              ...                              
                              state.setValue(true);
                            },
                          ),
                          RadioListTile(
                            ...
                          ),
                        ],
                      ));
                },
                validator: (value) {
                  if (value != true) {
                    return 'Please choose location';
                  }
                  return null;
                },
              )
FormField(
生成器:(FormFieldState){
返回填充(
填充:边缘设置。全部(10),
子:列(
crossAxisAlignment:crossAxisAlignment.start,
儿童:[
Text('发生在哪里?'),
state.hasrerror
?文本(
state.errorText,
样式:TextStyle(颜色:Colors.red),
)
:Container(),
放射科医师(
...
onChanged:(SomeValueType值){
...                              
state.setValue(true);
},
),
放射科医师(
...
),
],
));
},
验证器:(值){
如果(值!=true){
返回“请选择位置”;
}
返回null;
},
)

在这段代码中,当您调用FormState.validate()时,验证器将运行,然后显示错误文本。

我知道时间有点晚了。例如,只需使用FormBuilder即可

或者,如果在Form()中使用它,这是一个示例:

FormField(
                builder: (FormFieldState<bool> state) {
                  return Padding(
                      padding: EdgeInsets.all(10),
                      child: Column(
                        crossAxisAlignment: CrossAxisAlignment.start,
                        children: [
                          Text('Where is occurrence happened?'),
                          state.hasError
                              ? Text(
                                  state.errorText,
                                  style: TextStyle(color: Colors.red),
                                )
                              : Container(),
                          RadioListTile(
                            ...
                            onChanged: (SomeValueType value) {
                              ...                              
                              state.setValue(true);
                            },
                          ),
                          RadioListTile(
                            ...
                          ),
                        ],
                      ));
                },
                validator: (value) {
                  if (value != true) {
                    return 'Please choose location';
                  }
                  return null;
                },
              )
FormField(
生成器:(FormFieldState){
返回填充(
填充:边缘设置。全部(10),
子:列(
crossAxisAlignment:crossAxisAlignment.start,
儿童:[
Text('发生在哪里?'),
state.hasrerror
?文本(
state.errorText,
样式:TextStyle(颜色:Colors.red),
)
:Container(),
放射科医师(
...
onChanged:(SomeValueType值){
...                              
state.setValue(true);
},
),
放射科医师(
...
),
],
));
},
验证器:(值){
如果(值!=true){
返回“请选择位置”;
}
返回null;
},
)

在该代码中,当您调用FormState.validate()时,验证程序将运行,然后显示错误文本。

您所说的“验证”是什么意思?根据定义,单选按钮是有效的。它有两个状态,开和关,如果其中一个状态无效,您就不需要单选按钮。这个答案对我帮助很大:。@UTKARSHSharma我不能,因为字段是动态的,否则很容易。@nvoigt validate意味着像TextFormField一样检查用户是否选择了值。默认情况下,在我们的应用程序中,我们不能给用户一个默认值,这就是为什么需要验证的原因。@FarrukhSajjad谢谢,但正如我在问题中已经说过的,我不想使用该插件。“验证”是什么意思?根据定义,单选按钮是有效的。它有两个状态,开和关,如果其中一个状态无效,您就不需要单选按钮。这个答案对我帮助很大:。@UTKARSHSharma我不能,因为字段是动态的,否则很容易。@nvoigt validate意味着像TextFormField一样检查用户是否选择了值。默认情况下,在我们的应用程序中,我们不能给用户一个默认值,这就是为什么需要验证的原因。@FarrukhSajjad谢谢,但正如我在问题中已经说过的,我不想使用该插件。