搜索提示 我們平時使用的搜索框中,常常是當用戶輸入一部分內容後,下方就會顯示對應的搜索提示,以支付寶爲例,當在搜索框輸入“螞蟻”關鍵詞後,下方自動刷新和關鍵詞相關的結果:

最簡單直接的方法如下:

RxTextView.textChanges(input)
    .debounce(500, TimeUnit.MILLISECONDS)
    .switchMap(text -> api.queryKeyword(text.toString()))
    .observeOn(AndroidSchedulers.mainThread())
    .subscribe(results -> {
        // handle results
    });

switchMap 這個操作符與 flatMap 操作符類似,但是區別是如果原 Observable 中的兩個元素,通過 switchMap 操作符都轉爲 Observable 之後,如果後一個元素對應的 Observable 發射元素時,前一個元素對應的 Observable 尚未發射完所有元素,那麼前一個元素對應的 Observable 會被自動取消訂閱,尚未發射完的元素也不會體現在 switchMap 操作符調用後產生的新的 Observable 發射的元素中。
取消上次請求方式也可用requestDisposable?.dispose()方式

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章