【发布时间】:2021-10-06 08:15:03
【问题描述】:
在我的情况下,数据的初始加载是完美的,但是当我在某个位置滚动 recyclerView 时,即使状态不等于 1,textView 也是可见的。
adapter = new FirebaseRecyclerAdapter<Model, MyViewHolder>(Model.class,
R.layout.layout_order_list,
MyViewHolder.class,
reference) {
@Override
protected void populateViewHolder(MyViewHolder viewHolder, Model model, int position) {
viewHolder.textView.setText(model.getName());
String status = model.getStatus();
if(status.equals("1")){
viewHolder.btnStatus.setVisibility(View.GONE);
viewHolder.textView.setVisibility(View.VISIBLE);
}
}
};
回收站视图
recyclerView.setHasFixedSize(true);
layoutManager = new LinearLayoutManager(this);
layoutManager.setReverseLayout(true);
layoutManager.setStackFromEnd(true);
recyclerView.setLayoutManager(layoutManager);
【问题讨论】:
-
视图持有者在位置之间重复使用,因此您的
populateViewHolder必须考虑到viewHolder之前可能已绑定到具有status == 1的项目。您需要添加一个else案例,它将视图可见性恢复为默认值。
标签: java android firebase-realtime-database android-recyclerview firebaseui