我使用FirebaseRecyclerAdapter
填充RecyclerView
中的Fragment
。
这是我的代码
mDatabase = FirebaseDatabase.getInstance().getReference();
myAdapter = new FirebaseRecyclerAdapter<Product, ProductViewHolder>(Product.class,
R.layout.product_item,ProductViewHolder.class,
mDatabase.child("clothes")) {
@Override
protected void populateViewHolder(ProductViewHolder viewHolder, Product model, int position) {
mProgressBar.setVisibility(ProgressBar.INVISIBLE);
viewHolder.name.setText(model.name);
viewHolder.price.setText(model.price);
Glide.with(getActivity()).load(model.imageUri).into(viewHolder.thumbnail);
Log.d("NAME", model.name);
}
};
recyclerView.setAdapter(myAdapter);
问题是,ProgressBar
在第一次启动时继续移动,它永远不会隐藏,而RecyclerView
从不显示自己,但如果我退出应用并再次启动,则RecyclerView
为正确填充,即使屏幕锁定本身并解锁,也会填充RecyclerView
。
我很困惑。
答案 0 :(得分:5)
从代码中删除recyclerView.setHasFixedSize(true)
,然后检查代码是否正常运行。
对于解雇ProgressBar
,最好将可见性设置为GONE
。
mProgressBar.setVisibility(View.GONE);
有关详细信息,请参阅此Github link。我认为这里报道了同样的问题。
答案 1 :(得分:0)
在您的activity.xml文件中,设置ProgressBar属性
android:visibility="invisible"
并在populateViewHolder方法中设置mProgress.setVisibility(View.GONE);
将数据设置为TextViews&amp; ImageView的
protected void populateViewHolder(ProductViewHolder viewHolder, Product model, int position) {
viewHolder.name.setText(model.name);
viewHolder.price.setText(model.price);
Glide.with(getActivity()).load(model.imageUri).into(viewHolder.thumbnail);
mProgress.setVisibility(View.GONE);
Log.d("NAME", model.name);
}