Android RxSearchView搜索
我的问题有两个方面。我已经使用Android RxSearchView搜索,android,rx-java2,Android,Rx Java2,我的问题有两个方面。我已经使用RxSearchView一段时间了。我使用了map,filter和最后的switchMap从api查询搜索事件。首先,在映射或过滤器功能中,我更新了如下ui: .filter(new Predicate<String>() { @Override public boolean test(String s) throws Exception {
RxSearchView
一段时间了。我使用了map
,filter
和最后的switchMap
从api查询搜索事件。首先,在映射
或过滤器
功能中,我更新了如下ui:
.filter(new Predicate<String>() {
@Override
public boolean test(String s) throws Exception {
if (searchViewQueryTextEvent.queryText().toString().length() < 3 && mUserList != null) {
mUserList.clear();
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
mUserSearchAdapter.notifyDataSetChanged();
}
});
}
return s.length() > 2;
}
})
.filter(新谓词(){
@凌驾
公共布尔测试(字符串s)引发异常{
if(searchViewQueryText.queryText().toString().length()<3&&mUserList!=null){
mUserList.clear();
getActivity().runOnUiThread(新的Runnable()){
@凌驾
公开募捐{
mUserSearchAdapter.notifyDataSetChanged();
}
});
}
返回s.length()>2;
}
})
那么,从这些函数内部不断更新ui是一种好的做法吗?
其次,删除字符不能用这种方式处理。请给我建议/链接。我是新来的。非常感谢
那么,从这些函数内部不断更新ui是一种好的做法吗
您不需要也不应该在此处使用runOnUIThread()
。您可以向反应链中的observeOn
操作符添加多个调用以切换线程。以下是有关线程的一些链接:
- :阅读有关线程的内容
- :博客上的subscribeOn和observeOn GIF使差异更容易可视化和使用
- :我们可以多次使用
observeOn
- :与您需要实现的目标类似
debounce()
运算符来代替过滤。
下面是2017年在Droidcon Boston举行的一次会议,我在会上讨论了debounce()
和switchMap()
滚动到~25:00时间的自动搜索问题。您可以找到处理字符删除的,以及
我希望这会有帮助。这是非常有帮助的。感谢您的指导。我一定会看看你的Droidcon演讲:)