【问题标题】:how to change method of custom widget ( input Text Widget )如何更改自定义小部件的方法(输入文本小部件)
【发布时间】:2026-02-15 06:35:01
【问题描述】:

这是我的海关输入文本小部件

```
               TextInputLayout(
                focusNode: focusNodeEmail,
                controller: emailController,
                label: AppLocalizations.of(context)
                    .translate("worker_id_hash"),
                iconData: Icons.email,
                errorText:
                    _validate ? 'Please Enter Valid Worker ID' : null,
                inputType: TextInputType.emailAddress,
                inputAction: TextInputAction.done,
                textCapitalization: false,
                onTextChange: () {},
              ),
```

怎么做? :在键盘按钮“完成”上单击转到新页面

```TextFormField(
    focusNode: widget.focusNode,
    controller: widget.controller,
    textInputAction: widget.inputAction,
    textCapitalization: widget.textCapitalization
        ? TextCapitalization.sentences
        : TextCapitalization.none,
    keyboardType: widget.inputType,
    enabled: widget.enable == null ? true : false,
    initialValue: widget.initialValue == null ? null : widget.initialValue,
    onChanged: (value) {
      widget.onTextChange();
      setState(() {
        widget.errorText = null;
      });
    },
    onEditingComplete: () {
      if (widget.inputAction == TextInputAction.done) {
        FocusScope.of(context).unfocus();
      } else {
        FocusScope.of(context).requestFocus(widget.nextFocusNode);
      }
    },```

这个小部件在整个项目中使用,所以现在我如何更改 onEditingComplete 方法以导航到新页面

【问题讨论】:

  • 我只想在完成点击时调用一种方法
  • 您可以将类似widget.onTextChange(); 的函数传递给您的onEditingComplete

标签: flutter input submit navigator


【解决方案1】:

根据我对您的问题的理解,您希望根据此小部件当前所在的当前路线更改按下 onEditingComplete 的行为。 如果这是真的,我猜你要找的是回调,根据*的定义:

是作为参数传递给其他代码的任何可执行代码; 预计其他代码将回调(执行)参数 给定时间。

在更简单的英语中,这意味着将一个函数/方法作为参数传递给另一个函数/方法以在其主体内调用。

因此,在您的情况下,在您在整个应用程序中使用的小部件中,您需要添加一个 Function 或 VoidCallBack 类型的额外属性(取决于您的函数/方法是否返回值)和将该属性传递给 TextFormField 的 onEditingComplete。

【讨论】:

  • 是的......你是绝对正确的兄弟我和你说的一样......
  • 很高兴能帮上忙!!
最近更新 更多