来自另一个 class 的 Flutter Call Listener
Flutter Call Listener from another class
我是 Flutter 的新手(来自 Java),正在完成第一个 Android 应用程序。
在我的项目中,我使用不同的 class 来创建一个可重复使用的小部件(来自示例 here),它适用于所有方法,但我想不出一个定义和重用方法 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,
),
),
),
);
}
}
这是 class 我想实现和重用小部件的地方 :
Container(
child: AppTextField(
controller: _controllerPassword,
pwValidator: (value) { },
onEditingComplete: // here is where I am facing difficulties
),
属性 onEditingComplete is a VoidCallback。这是一个没有参数的函数,不 return 任何数据。
在AppTextField
中定义onEditingComplete
为
final VoidCallback onEditingComplete;
然后赋给TextFormField的onEditingComplete
属性。另外,去掉三元运算符。
onEditingComplete: onEditingComplete
并且在使用小部件时,像这样传递回调:
Container(
child: AppTextField(
controller: _controllerPassword,
pwValidator: (value) { },
onEditingComplete: (){
//Do what you want to do here.
}
),
我是 Flutter 的新手(来自 Java),正在完成第一个 Android 应用程序。
在我的项目中,我使用不同的 class 来创建一个可重复使用的小部件(来自示例 here),它适用于所有方法,但我想不出一个定义和重用方法 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,
),
),
),
);
}
}
这是 class 我想实现和重用小部件的地方 :
Container(
child: AppTextField(
controller: _controllerPassword,
pwValidator: (value) { },
onEditingComplete: // here is where I am facing difficulties
),
属性 onEditingComplete is a VoidCallback。这是一个没有参数的函数,不 return 任何数据。
在AppTextField
中定义onEditingComplete
为
final VoidCallback onEditingComplete;
然后赋给TextFormField的onEditingComplete
属性。另外,去掉三元运算符。
onEditingComplete: onEditingComplete
并且在使用小部件时,像这样传递回调:
Container(
child: AppTextField(
controller: _controllerPassword,
pwValidator: (value) { },
onEditingComplete: (){
//Do what you want to do here.
}
),