水平和垂直Recyclerview项目位置

时间:2018-02-17 08:42:52

标签: android android-recyclerview recycler-adapter

我在Google Play商店等垂直回收视图中创建了水平回收视图。能够正确渲染项目,但是当我在水平回收视图中添加onclicklistener时,我只获得水平项目位置,如何获得veritcal recyclerview项目位置以完全从模型类中获取被点击的项目。?

1 个答案:

答案 0 :(得分:1)

假设您有一个List<Vertical> 用于外部recyclerView ,而一个垂直列表字段为List<Horizontal> 用于内部水平回收视图垂直对象应该像这个..

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适配器中的垂直位置记录为水平..对于一个水平列表,它将是常量

修改

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);

        }
    });



}