如何使用一个RecyclerView适配器使用多个布局?

时间:2016-11-18 04:49:31

标签: android android-recyclerview android-adapter cardview

嘿伙计们我在Recyclerview中实现了两张卡片,并创建了两个视图持有者,但没有获得适配器的代码帮助我们。

public class ViewHolder1 extends RecyclerView.ViewHolder {

    private TextView Chatin;

    public ViewHolder1(View v) {
        super(v);
        Chatin = (TextView) v.findViewById(R.id.Chatin);
    }

    public TextView getChatin() {
        return Chatin;
    }

    public void setChatin(TextView chatin) {
        this.Chatin = chatin;
    }


}

其他视图持有者是相同的。

2 个答案:

答案 0 :(得分:2)

答案 1 :(得分:1)

您可以在Recycler视图中显示多张卡片。

1)覆盖getItemViewType()方法

@Override
public int getItemViewType(int position) {

    switch (position) {
        case 0:
            return VIEW_TYPE_ONE;
        case 1:
            return VIEW_TYPE_TWO;
             .
             .
             .
        case n:
            return VIEW_TYPE_N;

        default:
            return DEFAULT_VIEW_TYPE;
    }
}

2)检查onCreateViewHolder()方法中的viewType

 @Override
 public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
   switch (viewType) {
     case  VIEW_TYPE_ONE: 
      // return card one.  
          .
          .
          .
    }
 }

3)检查onBindViewHolder()中的视图类型,并相应地将位置和数据设置到您的卡上。

@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
     switch (getItemViewType(position)) {
        case VIEW_TYPE_ONE:
          ViewTypeOneViewHolder holderObj= (ViewTypeOneViewHolder) holder;
          //Your implementation for view type one.

          break;
          .
          .
          .
     }
 }