을 듣고 좋은 것 :
public class BarListAdapter extends RecyclerView.Adapter<BarListAdapter.BarListViewHolder> {
private List<Bar> bars;
private int rowLayout;
private Context context;
private BarViewHolderClicks clickListener;
public BarListAdapter(List<Bar> bars, int rowLayout, Context context, BarViewHolderClicks clickListener) {
this.bars = bars;
this.rowLayout = rowLayout;
this.context = context;
this.clickListener = clickListener;
}
@Override
public BarListAdapter.BarListViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(rowLayout, parent, false);
return new BarListViewHolder(view, clickListener);
}
@Override
public void onBindViewHolder(final BarListViewHolder holder, final int position) {
holder.barNameView.setText(bars.get(position).getName());
holder.position = position;
holder.lastVideoTimeView.setText(bars.get(position).getCaptureTime());
if (bars.get(position).isWatched()) {
holder.thumbnailView.setVisibility(View.GONE);
} else {
setThumbnail(holder, position);
}
}
public void changeStatusToWatched(int position){
bars.get(position).setWatched(true);
notifyDataSetChanged();
}
private void setThumbnail(BarListViewHolder holder, int position) {
Picasso.with(context).load(bars.get(position).getThumbnailUrl())
.placeholder(R.drawable.webcam).error(R.drawable.webcam)
.resize(50, 50).centerCrop().into(holder.thumbnailView);
}
@Override
public int getItemCount() {
return bars.size();
}
public static class BarListViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
public BarViewHolderClicks clickListener;
View itemLayout;
TextView barNameView;
TextView lastVideoTimeView;
RoundedImageView thumbnailView;
CheckBox barCheckbox;
int position;
public BarListViewHolder(View v, BarViewHolderClicks listener) {
super(v);
this.clickListener = listener;
barNameView = (TextView) v.findViewById(R.id.bar_name);
thumbnailView = (RoundedImageView) v.findViewById(R.id.video_thumbnail);
itemLayout = v.findViewById(R.id.item_lahyout);
lastVideoTimeView = (TextView) v.findViewById(R.id.last_video_time);
itemLayout.setOnClickListener(this);
thumbnailView.setOnClickListener(this);
}
@Override
public void onClick(View v) {
if (v instanceof ImageView) {
clickListener.onThumbnailClick(position);
} else {
clickListener.onLayoutClick(position);
}
}
}
}
그리고 여기가 활동에 사용입니다 축소판 이미지를 숨길 때 onBindViewHolder() 메서드 내에서 코드 사용
holder.thumbnailView.setVisibility(View.GONE);
Recyclerview는 매번 새 레이아웃 인스턴스를 사용하지 않고 재활용 된 레이아웃을 다시 사용합니다. 그래서 공연/숨기기로 연주해야합니다.
미리보기 이미지를 레이아웃에 설정하고 이미지를 표시하거나 숨기 만하면됩니다.
if (bars.get(position).isWatched()) {
holder.thumbnailView.setVisibility(View.GONE);
} else {
holder.thumbnailView.setVisibility(View.VISIBLE);
}
나는 그것이 당신을 도울 것입니다.
그렇지 않으면 알려주세요.
onThumbnail 왜 다른 활동을 시작 하시겠습니까 ?? 정확한 요구 사항은 무엇입니까? –
이것은 수입품이 아닙니다. 막대의 이름만으로 새로운 활동이 열립니다. 특별한 것은 없습니다. – user6822028