我对Flutter(来自Java)很陌生,并且通过第一个Android应用程序进入了我的生活。
在我的项目中,我正在使用不同的类来创建可重用的小部件(来自此处的示例),该小部件可与所有方法完美配合,但是我无法找到一种定义和重用该方法的方法onEditingComplete
。
这是我的代码:
class AppTextField extends StatelessWidget {
//
AppTextField({
this.controller,
this.textInputType,
this.pwValidator,
this.editingComplete, // this the method that is causing the problem
});
final TextEditingController controller;
final TextInputType textInputType;
final FormFieldValidator pwValidator;
final Listener editingComplete; // This doesn't work. Am I using the wrong listener?
@override
Widget build(BuildContext context) {
return Container(
child: Theme(
data: ThemeData(
primaryColorDark: Colors.blue,
),
child: Padding(
padding: EdgeInsets.fromLTRB(25, 15, 25, 0),
child: TextFormField(
controller: controller,
keyboardType: null == textInputType ? textInputType : textInputType,
validator: null == pwValidator ? pwValidator : pwValidator,
// I am facing problems with this line of code
onEditingComplete: null == editingComplete ? editingComplete : editingComplete,
),
),
),
);
}
}
这是我要实现和重用小部件的类:
Container(
child: AppTextField(
controller: _controllerPassword,
pwValidator: (value) { },
onEditingComplete: // here is where I am facing difficulties
),
onEditingComplete属性是VoidCallback。这是一个没有参数的函数,不返回任何数据。
在AppTextField
定义onEditingComplete
为
final VoidCallback onEditingComplete;
然后将其分配给onEditingComplete
TextFormField的属性。此外,摆脱三元运算符。
onEditingComplete: onEditingComplete
并且在使用小部件时,像这样传递回调:
Container(
child: AppTextField(
controller: _controllerPassword,
pwValidator: (value) { },
onEditingComplete: (){
//Do what you want to do here.
}
),
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句