2016-11-18 70 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; 
      . 
      . 
      . 
    } 
} 
相關問題