2016-11-18 8 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

Пожалуйста, обратитесь URL-адрес http://stackoverflow.com/questions/25914003/recyclerview-and-handling-different-type-of-row-inflation может быть полезным. –

ответ

2

Да, мы можем использовать несколько карт. Для справки см. Ниже ссылку для адаптера образца: - https://github.com/subbuboyapati/MovieMasti/blob/master/app/src/main/java/com/subbu/moviemasti/adapter/ReviewAdapter.java

Этот ответ также поможет вам. Can I Use Only One RecyclerView For The Three Different CardView With Different Design?

Также ознакомьтесь с этим руководством, http://arjunu.com/2015/10/android-recyclerview-with-different-cardviews/.

+0

Приведенные ссылки очень полезны. –

+0

Рад, это тебе помогло. –

0

Вы можете отображать несколько карт в режиме Recycler.

1) Override метод

@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 getItemViewType()) Проверить viewType в onCreateViewHolder метод()

@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; 
      . 
      . 
      . 
    } 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^