是否可以在viewHolder中设置坐标而不是在其他布局中设置getT坐标? 我可以得到一个例子吗? 这是我的视图持有人示例:
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
public class myHolder extends RecyclerView.ViewHolder implements
View.OnClickListener {
//views
ImageView mImageIv;
TextView mTitleTv, mDescrTv;
ItemClickListener itemClickListener;
myHolder(@NonNull View itemView) {
super(itemView);
this.mImageIv = itemView.findViewById(R.id.Model_ImageIv);
this.mDescrTv = itemView.findViewById(R.id.Model_DescrTv);
this.mTitleTv = itemView.findViewById(R.id.Model_TitleTv);
itemView.setOnClickListener(this);
}
@Override
public void onClick(View v) {
this.itemClickListener.onItemClick(v, getLayoutPosition());
}
public void setItemClickListener(ItemClickListener ic){
this.itemClickListener = ic;
}
}
您可以将任何方法添加到 ViewHolder。
然后,您可以使用:
recyclerView.findViewHolderForAdapterPosition(position);
或
recyclerView.findContainingItemView(view);
recyclerView.findViewHolderForLayoutPosition(position);
recyclerView.findViewHolderForItemId(id);
查找 ViewHolder 并致电getCoordinate()
此操作过去由保存完整数据集的适配器进行管理。您可以更新所需的项,然后调用 notifyDataSetChanged(( 方法。