来自另一个类的 Flutter 调用监听器

问题描述

我对 Flutter 还很陌生(来自 Java)并且正在学习第一个 Android 应用程序。

在我的项目中,我使用不同的类来创建一个可重用的小部件(来自示例 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,);
  }
}

这是我想要实现和重用小部件的类:

Container(
    child: AppTextField(

          controller: _controllerPassword,pwValidator: (value) { },onEditingComplete:          // here is where I am facing difficulties              
    ),

解决方法

属性 onEditingComplete 是一个 VoidCallback。这是一个没有参数的函数,不返回任何数据。

t org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:215) 中定义 AppTextField

onEditingComplete

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

onEditingComplete

当使用小部件时,像这样传递回调:

onEditingComplete: onEditingComplete