У меня есть RecyclerView
с настраиваемым видом для каждого элемента.Этот пользовательский вид содержит только избранное ImageView
.Я установил onclick в своем классе держателей следующим образом:
class DataViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
private OnItemViewClickListener onItemViewClickListener;
private OnFavoriteImageViewClickListener onFavoriteImageViewClickListener;
private ImageView favoriteImageView;
DataViewHolder(View itemView, OnItemViewClickListener onItemViewClickListener,
OnFavoriteImageViewClickListener onFavoriteImageViewClickListener) {
super(itemView);
this.onItemViewClickListener = onItemViewClickListener;
itemView.setOnClickListener(this);
favoriteImageView = itemView.findViewById(R.id.favorite_image_view);
this.onFavoriteImageViewClickListener = onFavoriteImageViewClickListener;
favoriteImageView.setOnClickListener(this);
}
void bindData(Data data) {
//Bind data to views
}
@Override
public void onClick(View v) {
int position = getAdapterPosition();
Data clickedData = getItem(position);
onItemViewClickListener.onItemViewClick(clickedData);
onFavoriteImageViewClickListener.onFavoriteImageViewClick(clickedData);
}
}
public interface OnItemViewClickListener {
void onItemViewClick(Data data);
}
public interface OnFavoriteImageViewClickListener {
void onFavoriteImageViewClick(Data data);
}
Как вы можете видеть, я однажды установил прослушиватель щелчков на весь вид и один раз на вид изображения.Проблема в том, что когда я нажимаю ImageView
, запускаются оба события щелчка, одно из которых на всем экране, а второе на ImageView
.Горячий, чтобы остановить первый (на весь вид) и остаться только один ImageView
?Спасибо!