簡體   English   中英

如何將flutter textFormField onChange和onSubmitted作為參數傳遞?

[英]How to pass flutter textFormField onChange and onSubmitted as a parameter?

我正在嘗試創建一個自定義TextFormField ,它將接受我需要的參數,如labelTextcontrollerprefixIcon等。我不知道如何將函數傳遞給OnChangeonSubmitted事件。 請檢查下面的示例代碼。

實用工具.dart

class TextFieldTemplate extends StatelessWidget {
  final String initialValue;
  final String labelText;
  final String hintText;
  final IconData prefixIcon;
  
  final TextEditingController controller;
  final Function onTap;

  TextFieldTemplate(
      {this.initialValue,
      this.labelText,
      this.prefixIcon,
      this.controller,
      });

  @override
  Widget build(BuildContext context) {
    return TextFormField(
      onChanged: (){},
       onSubmitted: (){},
      controller: controller,
      decoration: InputDecoration(
        contentPadding: decorationPadding,
        labelText: labelText,
        prefixIcon: prefixIcon != null
            ? Icon(
                prefixIcon,
              )
            : null,
      ),
    );
  }
}

TextFieldTemplate 的用法:

     var _personName = TextEditingController();
    
      @override
      Widget build(BuildContext context) {
        return Form(
          key: _formKey,
          child: Column(
            crossAxisAlignment: CrossAxisAlignment.start,
            childtren[
              TextFieldTemplate(
                labelText: 'Person Name',
                controller: _personName,
                prefixIcon: Icons.person,
//              onSubmitted : ???
//              OnChange : ???
              ),
              ]
          ),
        );
      }

您可以像這樣傳遞onChangedonSubmitted參數

Function(String) onChanged;
Function(String) onSubmitted;

並像這樣使用

TextFieldTemplate(
                labelText: 'Person Name',
                controller: _personName,
                prefixIcon: Icons.person,
                onSubmitted: (value){},
                onChanged: (value){},
              ),

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM