Flutter 来自另一个类的颤振调用侦听器

Flutter 来自另一个类的颤振调用侦听器,flutter,textfield,textformfield,Flutter,Textfield,Textformfield,我对flatter(来自Java)和第一个Android应用程序是相当陌生的 在我的项目中,我使用一个不同的类来创建一个可重用的小部件(来自示例),它可以完美地与所有方法一起工作,但我无法找到一种方法来定义和重用方法onEditingComplete 这是我的密码: class AppTextField extends StatelessWidget { // AppTextField({ this.controller, this.textInputType,

我对flatter(来自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              
    ),
该地产是一家私人公司。这是一个没有参数的函数,不返回任何数据

AppTextField
中将
onEditingComplete
定义为

final VoidCallback onEditingComplete;
然后将其分配给TextFormField的
onEditingComplete
属性。另外,去掉三元运算符

onEditingComplete: onEditingComplete
使用小部件时,按如下方式传递回调:

Container(
  child: AppTextField(

      controller: _controllerPassword,              
      pwValidator: (value) { },
      
      onEditingComplete:   (){
          //Do what you want to do here.
      }           
),

很酷的人,非常感谢。我想这跟回电话有关。感谢您的解释和代码片段。。。谢谢你提出的去掉三元运算符的建议。代码运行平稳,看起来又漂亮又干净。