2016-11-25 4 views
0

Ich habe GridLayoutManager für RecyclerView mit GridLayoutManager.HORIZONTAL Orientierung verwendet. SpanCount funktioniert nicht korrekt für mich, weil es von der Layoutausrichtung abhängt, aber ich weiß, wie viel Spalten und Zeilen ich brauche. Wie kann ich es tun?GridLayoutManager Spalten- und Zeilenanzahl setzen

Von Dokumentation zu setSpanCount(int spanCount):

/** 
* Sets the number of spans to be laid out. 
* <p> 
* If {@link #getOrientation()} is {@link #VERTICAL}, this is the number of columns. 
* If {@link #getOrientation()} is {@link #HORIZONTAL}, this is the number of rows. 
* 
* @param spanCount The total number of spans in the grid 
* @see #getSpanCount() 
*/ 

Beispiel: Mein RecyclerView Größe ist match_parent, wenn ich 9 Einzelteile haben, ich habe Gitter 3x3, wenn ich 5 Einzelteile haben, i Gitter 3x2 haben, aber ich 2x3 wollen .

P.S. Ich möchte GridLayoutManager.VERTICAL Layoutausrichtung nicht festlegen.

In Screenshot ist nicht korrekt, ich möchte Grid 2x3.

it is not correct for me

Antwort

0

Sie sollten dynamisch zählen gesetzt Spanne, basierend auf dem Datengröße.

gridLayoutManager.setSpanCount((int) Math.ceil(data.size()/3f)); 

Also für 7, 8 und 9 Elemente, haben Sie 3 Reihen. Für 4, 5 und 6, 2 Reihen und so weiter. Es ist wichtig, float (3f) zu verwenden, damit Ihre Division nicht abgeschnitten wird.

+0

es lässt Abstand zwischen den Zeilen, wenn es 4-6 Elemente sagt – ViVekH

Verwandte Themen