【问题标题】:Data retrieval from firebase is taking some time to load in recyclerview从 firebase 检索数据需要一些时间才能加载到 recyclerview
【发布时间】:2020-04-18 23:34:03
【问题描述】:

我无法解决快速加载数据的问题,从 firebase 加载数据需要很长时间。
查看加载菜单的代码,请帮我找出错误。

//Load menu
    recycler_menu = (RecyclerView) findViewById(R.id.recycler_menu);
    recycler_menu.setHasFixedSize(true);
    layoutManager = new LinearLayoutManager(this);
    recycler_menu.setLayoutManager(layoutManager);
    Log.e("home","Outside loadmenu");
    loadMenu();
}

private void loadMenu() {
    Log.e("home","Inside loadmenu");

    FirebaseRecyclerOptions<Category> options;
    options = new FirebaseRecyclerOptions.Builder<Category>()
            .setQuery(category, Category.class)
            .build();
    Log.e("home","After Options");
    adapter= new FirebaseRecyclerAdapter<Category, MenuViewHolder>(options) {
        @NonNull
        @Override
        public MenuViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
            Log.e("home","Inside MenuView");
            View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.menu_item, parent, false);
            return  new MenuViewHolder(view);
        }

        @Override
        protected void onBindViewHolder(@NonNull MenuViewHolder holder, int position, @NonNull Category model) {
            Log.e("home","Inside onBind");
            holder.txtMenuName.setText(model.getName());
            holder.txtMenuPrice.setText(model.getPrice());
            Picasso.with(getBaseContext()).load(model.getImage()).into(holder.imageView);
            final Category clickItem = model;
            holder.setItemClickListener(new ItemClickListener() {
                @Override
                public void onClick(View view, int position, boolean isLongClick) {
                    // Toast.makeText(home.this, "" + clickItem.getName(), Toast.LENGTH_SHORT).show();I
                    Intent clothDetail = new Intent(home.this,ClothesDetail.class);
                    clothDetail.putExtra("ClothId",adapter.getRef(position).getKey());
                   startActivity(clothDetail);
    }
           });
        }

    };

    recycler_menu.setAdapter(adapter);
    adapter.startListening();
    adapter.notifyDataSetChanged();
    Log.e("home","last laodmenu");


}


   @Override
  protected void onStart() {
  Log.e("home","Inside onStart");
  super.onStart();
  loadMenu();
  adapter.startListening();

  }

当我使用 firebase 数据库和 storage10.0.1' 和 firebase-ui-database:1.1.1' 时,它在几秒钟内加载速度更快。但是当我升级到最新版本时,数据库和 UI 的 gradle 版本都需要几分钟才能加载。

【问题讨论】:

  • 一次加载多少个项目?
  • 只有七个,请帮忙
  • some time to load 是什么意思?多少秒?
  • 加载大约需要 5 到 10 秒,甚至更多

标签: android firebase firebase-realtime-database android-recyclerview


【解决方案1】:

减小图像尺寸: recyclerView.setItemViewCacheSize(10);

将LinearLayout更改为Constraint Layout

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-12
    • 2019-01-19
    • 1970-01-01
    • 2019-12-20
    • 1970-01-01
    • 2023-04-07
    • 2012-06-24
    • 1970-01-01
    相关资源
    最近更新 更多