通过用更新的查询替换适配器从 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)