我无法解决快速加载数据的问题,从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版本最初都需要几分钟才能加载。
答案 0 :(得分:0)
减小图像尺寸:
recyclerView.setItemViewCacheSize(10);
将LinearLayout更改为Constraint Layout