我在像谷歌游戏商店这样的垂直回收 View 中创建了水平回收 View 。我能够正确呈现项目,但是当我在水平 recyclerview 中添加 onclicklistener 时,我只得到水平项目位置,如何获得 veritcal recyclerview 项目位置以完全从模型类中获取被点击的项目。?
最佳答案
假设您有一个 List<Vertical>
for outer recyclerView 垂直列表的一个字段是List<Horizontal>
对于内部水平recyclerview垂直对象应该是这样的..
public class Vertical {
//int vertical_Postion;
List<Horizontal> horizontalList;
}
在 recyclerAdapter Vertical (onBindViewHolder()) 中将位置传递给构造函数,就像这样..
int vertical_position = position; // position you get in the onBindViewHolder
RecylerAdapterHorizontal horizontal = new RecyclerAdapterHorizontal(context,horizontalList,vertical_postion);
rv_horizontal.setAdapter(horizontal);
现在您可以在 reycler Adapter horizontal 中记录垂直位置。对于一个水平列表,它将保持不变
编辑
HorizontalAdapter(Context context,List<Horizontal> horizontal, int mVertPos)
{
this.mVertPos = mVertPos;
.......
}
@Override
public void onBindViewHolder(ItemViewHolder holder, int position)
{
holder.yourView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.e("horizontal pos= " +position);
Log.e("vert pos= " +mVertPos);
}
});
}
关于android - 水平和垂直 recyclerview 项目位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48839508/