2016-11-18 69 views
-1

嘿家伙我在一个recyclerview中实现了两张卡片,并且创建了两个视图持有者,但没有得到适配器的代码帮助我们。如何使用一个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; 
    } 


} 

其他查看持有人是相同的,因为它是。

+0

请参考网址http://stackoverflow.com/questions/25914003/recyclerview-and-handling-different-type-of-row-inflation可能会有所帮助。 –

回答

2
+0

提供的链接是非常有帮助的。 –

+0

很高兴,它帮助你。 –

0

您可以在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; 
      . 
      . 
      . 
    } 
} 
相关问题