从firebase进行数据检索需要一些时间来加载recyclelerview

时间:2018-06-15 05:49:55

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

我无法解决快速加载数据的问题,从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时,它在几秒钟内加载速度更快。但是当我升级到最新版本时,数据库和用户界面的gradle版本最初都需要几分钟才能加载。

1 个答案:

答案 0 :(得分:0)

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

将LinearLayout更改为Constraint Layout