Android 从firebase检索数据需要一些时间才能加载到recyclerview中
我无法解决快速加载数据的问题,从firebase加载数据需要很长时间。Android 从firebase检索数据需要一些时间才能加载到recyclerview中,android,firebase,firebase-realtime-database,android-recyclerview,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.setL
查看加载菜单的代码,请帮助我查找错误
//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();
}
//加载菜单
recycler\u菜单=(RecyclerView)findViewById(R.id.recycler\u菜单);
recycler_菜单。setHasFixedSize(真);
layoutManager=新的LinearLayoutManager(此);
回收器菜单。设置布局管理器(布局管理器);
Log.e(“主页”、“外部加载菜单”);
loadMenu();
}
私有void加载菜单(){
Log.e(“主页”、“内部加载菜单”);
FirebaseRecyclerOptions选项;
选项=新的FirebaseRecyclerOptions.Builder()
.setQuery(类别,类别.class)
.build();
Log.e(“主页”、“后选项”);
适配器=新的FirebaseRecyclerAdapter(选项){
@非空
@凌驾
public MenuViewHolder onCreateViewHolder(@NonNull ViewGroup父级,int viewType){
Log.e(“主页”、“菜单视图内部”);
View=LayoutFlater.from(parent.getContext()).flate(R.layout.menu_项,parent,false);
返回新的MenuViewHolder(视图);
}
@凌驾
受保护的无效onBindViewHolder(@NonNull MenuViewHolder holder,int位置,@NonNull类别模型){
Log.e(“主页”、“内部绑定”);
holder.txtMenuName.setText(model.getName());
holder.txtMenuPrice.setText(model.getPrice());
将(model.getImage())加载到(holder.imageView)中;
最终类别点击项目=模型;
setItemClickListener(新的ItemClickListener(){
@凌驾
公共void onClick(视图、int位置、布尔值isLongClick){
//Toast.makeText(home.this,“+clickItem.getName(),Toast.LENGTH_SHORT.show();I
Intent-clothDetail=newintent(home.this,ClothesDetail.class);
clothDetail.putExtra(“ClothId”,adapter.getRef(position.getKey());
星触觉(细节);
}
});
}
};
回收器菜单。设置适配器(适配器);
adapter.startListening();
adapter.notifyDataSetChanged();
Log.e(“主页”、“最后一个老挝菜单”);
}
@凌驾
受保护的void onStart(){
Log.e(“主页”、“内部onStart”);
super.onStart();
loadMenu();
adapter.startListening();
}
当我使用firebase数据库和storage10.0.1'以及firebase ui数据库:1.1.1'时,它在几秒钟内加载的速度更快。但当我升级到数据库和UI的最新版本时,最初加载需要几分钟。减小图像大小:
recyclerView.setItemViewCacheSize(10)代码>
将LinearLayout更改为约束布局
一次加载多少项?只有七项,请帮助加载时间的意义是什么?多少秒?加载时间大约需要5到10秒,甚至更长