2016-11-15 4 views
0

Hallo Leute, ich versuche, RecyclverView mit verschiedenen Sammlungen zu bevölkern .. Zum Beispiel habe ich 2 Liste lässt sagen Kundenliste und Lieferantenliste.Recyclerview mit verschiedenen Typen

Was ich will, erreichen ist:

  • Kunden header

  • Kunde 1

  • Kunde 2


  • Anbieter Kopf

  • Lieferant 1

  • Lieferant 2

Ist das möglich? Vielen Dank.
Sorry für mein Englisch

+1

Sie könnten diese Methode [getItemViewType()] (http://stackoverflow.com/questions/26245139/how-to-create-recyclerview-with-multiple-view-type) in Ihrem Adapter überschreiben; – Eric

Antwort

1

Es ist möglich, dies mit RecyclerView zu tun, sollten Sie getItemViewType() Methode außer Kraft setzen.

Like this:

private class CustomAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { 

    private static final int TYPE_1 = 1; 
    private static final int TYPE_2 = 2; 
    private static final int TYPE_3 = 3; 
    // more types... 

    @Override 
    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
     switch (viewType) { 
      case TYPE_1: 
       break; 
      case TYPE_2: 
       break; 
      case TYPE_3: 
       break; 
     } 
    } 

    @Override 
    public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { 
     switch (getItemViewType(position)) { 
      case TYPE_1: 
       break; 
      case TYPE_2: 
       break; 
      case TYPE_3: 
       break; 
     } 
    } 

    @Override 
    public int getItemViewType(int position) { 
     if(position == 1) { 
      return TYPE_1; 
     } else if(position == 2) { 
      return TYPE_2; 
     } else 
      return TYPE_3 
    } 

    @Override 
    public int getItemCount() { 
     return 10; 
    } 
} 
1

Sie können

public class MainAdapter extends SectionedRecyclerViewAdapter<MainAdapter.MainVH> { 

    @Override 
    public int getSectionCount() { 
     return 20; // number of sections. 
    } 

    @Override 
    public int getItemCount(int section) { 
     return 8; // number of items in section (section index is parameter). 
    } 

    @Override 
    public void onBindHeaderViewHolder(MainVH holder, int section) { 
     // Setup header view. 
    } 

    @Override 
    public void onBindViewHolder(MainVH holder, int section, int relativePosition, int absolutePosition) { 
     // Setup non-header view. 
     // 'section' is section index. 
     // 'relativePosition' is index in this section. 
     // 'absolutePosition' is index out of all non-header items. 
     // See sample project for a visual of how these indices work. 
    } 

    @Override 
    public MainVH onCreateViewHolder(ViewGroup parent, int viewType) { 
     // Change inflated layout based on 'header'. 
     View v = LayoutInflater.from(parent.getContext()) 
       .inflate(viewType == VIEW_TYPE_HEADER ? R.layout.header : R.layout.normal, parent, false); 
     return new MainVH(v); 
    } 

    public static class MainVH extends RecyclerView.ViewHolder { 

     public MainVH(View itemView) { 
      super(itemView); 
      // Setup view holder. 
      // You'd want some views to be optional, e.g. for header vs. normal. 
     } 
    } 
} 

https://github.com/afollestad/sectioned-recyclerview

https://github.com/luizgrp/SectionedRecyclerViewAdapter

https://gist.github.com/afollestad/c84e259e98a03134dfd5

wie auf diese Weise Abschnitt in recyclerview machen
+0

Wah bhura .. !! ! – Piyush

Verwandte Themen