如何在与 onClicked 视图相同的位置获取相同 ViewHolder 中的其他视图(在 RecyclerView 适配器中使用)

How to get other views in same ViewHolder at same position as the onClicked view (use in a RecyclerView Adapter)

我的应用程序中有一个 RecyclerView,它显示一行包含从 Internet 下载的图片和照片。屏幕上有一张照片和一个按钮。当用户单击一个按钮时,我想让另一个视图显示在屏幕上的照片之上。

我有一个 CustomViewHolder 保存 RecyclerView 的所有视图和一个显示 viewholder 视图的 CustomRecyclerViewAdapter。按钮的 onClick 方法在 CustomViewHolder 中被覆盖,如下所示 -

public static class CustomViewHolder extends RecyclerView.ViewHolder 
implements OnClickListener {

public Button mButton;
public ImageView mImageView1;
public ImageView mImageView2;

public CustomViewHolder(View v)
{
super(v);
mButton = (Button) ...           // Initializing views
mImageView1 = (ImageView) ...
mImageView2 = (ImageView) ...
}
@Override
    public void onClick(View v) {
        int id = v.getId();
        if(id == R.id.buttonid)
        {
             // TODO mImageView2.setVisibility(View.VISIBLE);
             // Any ideas on how to get the mImageView2 of this same item so it can be made visible?
        }
}

我需要一种方法来获取与单击按钮相同位置的 mImageView2 视图的引用。有人知道怎么做这个吗?如果有任何帮助,我将不胜感激。

尝试 ViewHolder 的 getAdapterPosition 方法。它将 return Holder 在 Recycler/Adapter

中的位置

另一种方法是在 Adapter

中实施 onBindViewHolder(ViewHolder holder, final int position)

此方法已将位置作为第三个参数。

喜欢

 @Override
public void onBindViewHolder(final ViewHolder holder, final int position) {

     holder.mImageView2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

        }
    });