1

Wie erstellt man eine Grid Recyclerview mit 3 Spalten in gerader Zahlenreihe und 4 Spalten in ungeraden Zahlenreihe?Grid Recyclerview mit 3 Spalten in geradzahliger Reihe und 4 Spalten in ungeradzahliger Reihe

lLayout = new GridLayoutManager(getActivity(), 4, LinearLayoutManager.VERTICAL, false); // MAX NUMBER OF SPACES 

    lLayout.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() { 
     @Override 
     public int getSpanSize(int position) { 
      return (position % 3 == 0 ? 3 : 4); 
     } 
    }); 

    recyclerView = (RecyclerView) view.findViewById(R.id.recyclerView); 
    recyclerView.setLayoutManager(lLayout); 

    if (arrayList != null) { 
     adapter = new RecyclerViewAdapter(getActivity(), arrayList); 
     recyclerView.setAdapter(adapter); 
    } 

Antwort

3

Try this,

// Create a grid layout with 12 columns 
    // (least common multiple of 3 and 4) 
GridLayoutManager manager = new GridLayoutManager(this, 12, GridLayoutManager.VERTICAL, false); 
     manager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() { 
      @Override 
      public int getSpanSize(int position) { 
       // 7 is the sum of items in one repeated section 
       switch (position % 7) { 
        // first three items span 3 columns each 
        case 0: 
        case 1: 
        case 2: 
         return 4; 
        // next four items span 2 columns each 

        case 3: 
        case 4: 
        case 5: 
        case 6: 
         return 3; 
       } 
       throw new IllegalStateException("internal error"); 
      } 
     }); 
     recyclerView.setLayoutManager(manager); 

See this:

+0

es kommt mit einem colomn pro Zeile @PeterSmith –

+0

überprüfen Sie bitte aktualisierte Antwort. @AshithVL –

+0

vielen Dank ,,, das hat funktioniert, ... aber der Text in der Zeile mit 3 colomn ist nicht in der Mitte ... warum –

0

Probieren Sie etwas wie dieses

layoutManager = new GridLayoutManager(getActivity(), 4); 
    layoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() { 
     @Override 
     public int getSpanSize(int position) { 
      if (position % 3 == 0) 
       return 3; 
      else 
       return 4; 
     } 
    }); 
    recyclerView.setLayoutManager(layoutManager); 

this helps

+0

es ist mit einem colomn pro Zeile kommenden @Valdio –

+0

y ou sollte wahrscheinlich entfernen Sie die setHasFixedSize Zeile auf Ihrem Code –

+0

entfernt das .. aber immer noch nicht –

Verwandte Themen