У меня есть 2 ViewHolders: по умолчанию и расширен (с некоторым текстом).Как получить текущую строку itemView?
Когда пользователь нажимает на строку, он должен переключить свой зритель на расширенный. В моем коде ниже, когда я нажимаю на itemView, каждый элемент itemView меняет его, а не только целевую строку. Как справиться с этим? Благодаря
private boolean isClicked;
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
int viewHoldertype = getItemViewType(position);
Item item = items.get(position);
holder.title.setText(item.getTitle());
switch (viewHoldertype) {
case TYPE_ARTICLE:
holder.itemView.setOnClickListener((View v) -> {
toggleItem();
});
break;
case TYPE_EXPANDED_ARTICLE:
final ExpandedViewHolder expandedItemHolder = (ExpandedViewHolder) holder;
expandedItemHolder.description.setText(item.getDescription());
expandedItemHolder.setIsRecyclable(false);
expandedItemHolder.itemView.setOnClickListener((View v) -> {
switch();
});
break;
}
}
void switch() {
isClicked = !isClicked;
notifyDataSetChanged();
}
class ViewHolder extends RecyclerView.ViewHolder {
@Bind(R.id.image)
ImageView image;
@Bind(R.id.title)
TextView title;
public ViewHolder(View itemView) {
super(itemView);
itemView.setTag(this);
ButterKnife.bind(this, itemView);
}
}
class ExpandedViewHolder extends ViewHolder {
@Bind(R.id.description)
TextView description;
public ExpandedViewHolder(View itemView) {
super(itemView);
}
}