2016-06-05 63 views
6

Używam bardzo pomocnego przykładu here, aby pokazać RecyclerView i GridLayoutManager, aby pokazać siatkę z nagłówkiem.RecyclerView GridLayoutManager z nagłówkiem o pełnej szerokości

Wygląda całkiem nieźle, ale mój projektant grafiki chce, aby pozycja nagłówka zajmowała całą szerokość widoku RecyclerView. W tej chwili jest wyściółka.

Kiedy skonfigurować GridLayoutManager dodam w wyściółką (które nadal chcą dla innych elementów sieci): [it Korzystanie Xamarin C#]

var numColumns = myListView.MeasuredWidth/tileSizeMax; 
myGridView.SetPadding(tilePadding, tilePadding, tilePadding, tilePadding); 
layoutManager = new GridLayoutManager(Activity, numColumns); 
myListView.SetLayoutManager(layoutManager); 

tak, to w jaki sposób mogę ustawić padding być różne dla elementu nagłówka ... lub sprawić, że będzie się rysował na wyściółce?

Odpowiedz

18

Spróbuj z tym:

mLayoutManager = new GridLayoutManager(this, 2); 
     mLayoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() { 
      @Override 
      public int getSpanSize(int position) { 
       switch(mAdapter.getItemViewType(position)){ 
        case MyAdapter.HEADER: 
         return 2; 

        case MyAdapter.ITEM: 
         return 1; 

        default: 
         return 1; 
       } 
      } 
     }); 

I sprawdzić te linki:

http://blog.sqisland.com/2014/12/recyclerview-grid-with-header.html Set span for items in GridLayoutManager using SpanSizeLookup

+0

Uratowałeś mój dzień! mAdapter.getItemViewType (pozycja) to linia, której bardzo potrzebowałem! – JSong