簡體   English   中英

Flutter TextFormField 在完成文本輸入后調用值更改方法

[英]Flutter TextFormField call value change method after finish text input

在我的屏幕中,有符合邏輯的搜索功能運行良好,但問題是我想在停止輸入后運行我的搜索功能? 那么TextFormFieldonChanged方法,如何實現呢? 我嘗試了很多方法,比如比較DateTime但無法實現。

~ PS: onEditingComplete方法在我的情況下很完美,但問題是,要調用這個方法,我必須點擊返回按鈕,而不點擊返回按鈕是否可能?

我建議創建一個 debouncer,像這樣。

class Debouncer {
  final int milliseconds;
  VoidCallback action;
  Timer _timer;

  Debouncer({this.milliseconds});

  run(VoidCallback action) {
    if (null != _timer) {
      _timer.cancel();
    }
    _timer = Timer(Duration(milliseconds: milliseconds), action);
  }
}

然后以您想要的“停止打字后”的時間啟動對象。

final _debouncer = Debouncer(milliseconds: 1000);

並在您的 onChanged 方法中使用它。

onChanged: (string) {
  _debouncer.run(() {
    //Perform your search
  }
);

暫無
暫無

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

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