【发布时间】:2019-10-27 09:06:53
【问题描述】:
如果我们有一个 RecyclerView 将有不同类型的视图,我们可以根据项目类型扩展我们需要的视图,例如
@Override
public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int type) {
View view = null;
switch (type) {
case TYPEX:
view = LayoutInflater
.from(viewGroup.getContext())
.inflate(R.layout.typex, viewGroup, false);
return new ViewHolderX(view);
case TYPEY:
view = LayoutInflater
.from(viewGroup.getContext())
.inflate(R.layout.typey, viewGroup, false);
return new ViewHolderY(view);
}
return null;
}
到目前为止一切顺利。然后这些视图可以在ViewHolder 中重用
问题:
如果TYPEX 视图有一个按钮,按下该按钮会更改视图中的某些内容,例如背景颜色,这意味着当视图被回收时,用户从未按下按钮的其他项目的颜色将有所不同。
由于它与视图必须从适配器显示的数据的任何条件无关,如何解决这个问题?
【问题讨论】:
标签: android android-layout android-view android-recyclerview