在RecyclerView上提交查询,图像速度很慢,无法正常工作

时间:2016-05-14 07:17:13

标签: android android-recyclerview searchview

每个人的好日子,我用RecyclerViewSearchView以及来自网络服务的数据实施SearchView,在 private ArrayList<itemObj> filter(ArrayList<itemObj> models, String query) { final ArrayList<itemObj> filteredModelList = new ArrayList<>(); for (itemObj model : models) { final String text = model.getTitle(); if (text.contains(query)) { filteredModelList.add(model); } } return filteredModelList; } 当我清除部分文字或所有文字时没有任何更新列表,它是执行查询的速度非常慢,我遵循此answer

  

注意:项目包含图片!

我的过滤器非常简单并不复杂:

 $.ajax({
            type: "POST",
            url: "api/token",
            data: {'': 'Hello Web API'},
            success: success,
            contentType: 'application/json'
        });
        function success(data) {
            console.log("new token response: ") 
            console.log(data) 
        }

任何帮助?

1 个答案:

答案 0 :(得分:0)

此处的问题是在您清除搜索到的文本后,适配器的列表后面的大小小于过滤器列表。所以代码需要修改如下

public void addItem(int position, ExampleModel model) {
    if(position >= mModel.size()) {
        mModel.add(model);
        notifyItemInserted(mModel.size()-1);
    } else {
        mModels.add(position, model);
        notifyItemInserted(position);
    }
}

并在moveItem功能中进行修改

public void moveItem(int fromPosition, int toPosition) {
    final ExampleModel model = mModels.remove(fromPosition);
    if(toPosition >= mModels.size()) {
        mModels.add(model);
        notifyItemMoved(fromPosition, mModels.size()-1);
    } else {
        mModels.add(toPosition, model);
        notifyItemMoved(fromPosition, toPosition); 
    }
}

希望它可以帮到你!