用退格键清理后的 RxSearchView

RxSearchView after cleaning with backspace

我有 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 显示 test,之后我想使用退格键清除搜索文本,问题是当搜索为空时Toast 与文本 t.

一起出现

如何解决这个问题?

我试图使用 .filter(item -> item.length() > 1) 但这也不起作用,在那种情况下 Toast 与文本 te

一起出现

顺序问题。 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();
            });