Vì một số lý do tôi không thể sử dụng holder.getAdapterPosition()
vì nó luôn trả về -1 nhưng holder.getLayoutPosition()
trả về một vị trí tốt.viewHolder.getAdapterPosition() luôn trả về -1
onCreateViewHolder của tôi:
@ Override
public ViewHolder onCreateViewHolder(ViewGroup parent,
int viewType) {
// create a new view
View v = LayoutInflater.from(parent.getContext())
.inflate(R.layout.my_item, parent, false);
ViewHolder vh = new ViewHolder(this, v);
return vh;
}
My ViewHolder constructor:
public ViewHolder(DirectoryListAdapter adapter, View linear) {
super(linear);
this.adapter = adapter;
this.linear = (LinearLayout) linear;
this.entryName = (TextView) linear.findViewById(R.id.item_name);
this.entryImage = (ImageView) linear.findViewById(R.id.item_image);
}
Tôi nhìn một chút nữa và getAdapterPosition
trông như thế này:
public final int getAdapterPosition() {
final ViewParent parent = itemView.getParent();
if (!(parent instanceof RecyclerView)) {
return -1;
}
final RecyclerView rv = (RecyclerView) parent;
return rv.getAdapterPositionFor(this);
}
Và về cơ bản những gì đang xảy ra là ViewParent là null. Bất kỳ ý tưởng tại sao có thể?
Khác với người tái chế của tôi đang hoạt động tốt.
Cảm ơn.
Vì vậy, tôi đang làm điều gì đó sai? tôi có nên đặt bố mẹ không? – casolorz