小编agl*_*kov的帖子

如何为从 Firestore 填充的 RecyclerView 实现过滤器?

通过用更新的查询替换适配器从 Firestore 填充的实时过滤 RecyclingView 显示性能非常差。

为了RecyclerView实时过滤我的应用程序(onQueryTextChange),我使用了扩展的自定义适配器,FirestoreRecyclerAdapter每次我需要过滤数据时,我都会创建一个新Query对象,创建新FirestoreRecyclerOptions对象,然后创建我的自定义适配器对象,将FirestoreRecyclerOptions对象传递给FirestoreRecyclerAdapter构造函数,最后调用swapAdapter在我的RecyclerView. 这种方法的问题在于它会导致性能不佳。每次更新查询时,我都可以看到视图闪烁。

文档搜索活动.java

package com.example.testapp;

import android.app.Activity;
import android.app.SearchManager;
import android.arch.lifecycle.LifecycleOwner;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.View;
import android.view.animation.AnimationUtils;
import android.view.animation.LayoutAnimationController;
import android.view.inputmethod.InputMethodManager;
import android.widget.SearchView;
import android.widget.TextView;

import com.example.testapp.adapter.ItemAdapter;
import com.example.testapp.model.Item;
import com.firebase.ui.firestore.FirestoreRecyclerOptions;
import com.google.firebase.firestore.FirebaseFirestore;
import com.google.firebase.firestore.Query;

public class DocumentSearchActivity extends AppCompatActivity { …
Run Code Online (Sandbox Code Playgroud)

android android-recyclerview google-cloud-firestore

6
推荐指数
1
解决办法
2827
查看次数