所以我有一个垂直方向的父级recyclerview
和一个水平方向的父级嵌套的子级recyclerview
。
Onclick
功能与子recylerview一起使用
我创建了一个接口,该接口将子项的适配器位置返回给父适配器类。
测试案例
recyclerview
,然后单击任何子项。结果-工作正常
recyclerview
,然后单击任何子项。结果-工作正常
结果-父recylerview
位置为-1(失败的测试案例)
这可能有什么可能性? 如果您需要任何代码,我可以通过编辑提供
父级ViewHolder类
class ViewHolder extends RecyclerView.ViewHolder{
RecyclerView reClassList;
ViewHolder(View itemView, final Context context) {
super(itemView);
reClassList = itemView.findViewById(R.id.recycle_garage_list_class);
garageListEvents = new GarageListEvents() {
@Override
public void getChildPositon(int childPosition) {
// TODO Remove
Log.e("GARAGE ADAPTER","Garage List Position :"+String.valueOf(getLayoutPosition()));
}
};
}
儿童ViewHolder类
public class ClassViewHolder extends RecyclerView.ViewHolder {
public ClassViewHolder(@NonNull View itemView) {
super(itemView);
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
garageListEvents.getChildPositon(getAdapterPosition());
}
});
}
}
界面
public interface GarageListEvents {
public void getChildPositon(int childPosition);
}
仅供参考-GarageAdapter是父适配器
答案 0 :(得分:1)
我想它必须与回收视图持有者一起做些事情。尝试将其设置为父视图持有者holder.setIsRecyclable(false);
。它对性能几乎没有影响,但是应该可以解决问题。