代码之家  ›  专栏  ›  技术社区  ›  VLeonovs

使用backspace清理后的RxSearchView

  •  0
  • VLeonovs  · 技术社区  · 8 年前

    我有RxSearchView:

    RxSearchView.queryTextChanges(searchView)
                .filter(charSequence -> !TextUtils.isEmpty(charSequence))
                .debounce(600, TimeUnit.MILLISECONDS)
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(query -> {
                    Toast.makeText(this, query, Toast.LENGTH_SHORT).show();
                });
    

    当我搜索文字时 test 这个 Toast 向我展示 测验 ,之后,我想使用backspace清除搜索文本,问题是在 干杯 与文本一起显示 t .

    如何解决这个问题?

    我试着用 .filter(item -> item.length() > 1) 但在这种情况下,这也不起作用 干杯 与文本一起显示 te

    enter image description here

    1 回复  |  直到 8 年前
        1
  •  0
  •   VLeonovs    8 年前

    问题是按顺序出现的。 debounce 必须在之前 filter

    这将起作用:

    RxSearchView.queryTextChanges(searchView)
                .debounce(600, TimeUnit.MILLISECONDS)
                .filter(charSequence -> !TextUtils.isEmpty(charSequence))
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(query -> {
                    Toast.makeText(this, query, Toast.LENGTH_SHORT).show();
                });