Пожалуйста, посмотрите на фотографии вложения, чтобы ясно понять проблему.
OnBindViewHolder-
public void onBindViewHolder(final ServicesListAdapter.MyViewHolder holder, final int position) {
try {
holder.CustomerName.setText(serviceList.get(position).getSName());
holder.CustomerEmailId.setText(serviceList.get(position).getSDescription());
// holder.bind(serviceList.get(position));
holder.imageView.setVisibility(serviceList.get(position).isChecked()? View.VISIBLE : View.GONE);
if(serviceList.get(position).isChecked()){
holder.buttonLayout.setVisibility(View.VISIBLE);
}else {
holder.buttonLayout.setVisibility(View.GONE);
}
} catch (Resources.NotFoundException e) {
e.printStackTrace();
}
}
Импульс просмотра:
public MyViewHolder(View itemView) {
super(itemView);
customerLayout = itemView.findViewById(R.id.customerLayout);
buttonLayout = itemView.findViewById(R.id.buttonLayout);
serviceLines = itemView.findViewById(R.id.serviceLines);
payBtn = itemView.findViewById(R.id.payBtn);
customerLayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
final int position = getAdapterPosition();
serviceList.get(position).setChecked(!serviceList.get(position).isChecked());
imageView.setVisibility(serviceList.get(position).isChecked() ? View.VISIBLE : View.GONE);
if(serviceList.get(position).isChecked()){
buttonLayout.setVisibility(View.VISIBLE);
SID = serviceList.get(position).getSId();
SDESC = serviceList.get(position).getSDescription();
}else {
buttonLayout.setVisibility(View.GONE);
}
notifyDataSetChanged();
}
});
payBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showalert();
}
});
}
Если я выберу последний элемент, который отображается, то при прокрутке вверх последний элемент не будет отображаться. Пожалуйста, дайте мне знать, если есть решения для этого