GridLayoutManager.SpanSizeLookup
public
static
abstract
class
GridLayoutManager.SpanSizeLookup
extends Object
java.lang.Object | |
↳ | androidx.recyclerview.widget.GridLayoutManager.SpanSizeLookup |
A helper class to provide the number of spans each item occupies.
Default implementation sets each item to occupy exactly 1 span.
Summary
Public constructors | |
---|---|
SpanSizeLookup()
|
Public methods | |
---|---|
int
|
getSpanGroupIndex(int adapterPosition, int spanCount)
Returns the index of the group this position belongs. |
int
|
getSpanIndex(int position, int spanCount)
Returns the final span index of the provided position. |
abstract
int
|
getSpanSize(int position)
Returns the number of span occupied by the item at |
void
|
invalidateSpanGroupIndexCache()
Clears the span group index cache. |
void
|
invalidateSpanIndexCache()
Clears the span index cache. |
boolean
|
isSpanGroupIndexCacheEnabled()
Returns whether results of |
boolean
|
isSpanIndexCacheEnabled()
Returns whether results of |
void
|
setSpanGroupIndexCacheEnabled(boolean cacheSpanGroupIndices)
Sets whether the results of |
void
|
setSpanIndexCacheEnabled(boolean cacheSpanIndices)
Sets whether the results of |
Inherited methods | |
---|---|
Public constructors
SpanSizeLookup
public SpanSizeLookup ()
Public methods
getSpanGroupIndex
public int getSpanGroupIndex (int adapterPosition, int spanCount)
Returns the index of the group this position belongs.
For example, if grid has 3 columns and each item occupies 1 span, span group index for item 1 will be 0, item 5 will be 1.
Parameters | |
---|---|
adapterPosition |
int : The position in adapter |
spanCount |
int : The total number of spans in the grid |
Returns | |
---|---|
int |
The index of the span group including the item at the given adapter position |
getSpanIndex
public int getSpanIndex (int position, int spanCount)
Returns the final span index of the provided position.
If you have a faster way to calculate span index for your items, you should override
this method. Otherwise, you should enable span index cache
(setSpanIndexCacheEnabled(boolean)
) for better performance. When caching is
disabled, default implementation traverses all items from 0 to
position
. When caching is enabled, it calculates from the closest cached
value before the position
.
If you override this method, you need to make sure it is consistent with
getSpanSize(int)
. GridLayoutManager does not call this method for
each item. It is called only for the reference item and rest of the items
are assigned to spans based on the reference item. For example, you cannot assign a
position to span 2 while span 1 is empty.
Note that span offsets always start with 0 and are not affected by RTL.
Parameters | |
---|---|
position |
int : The position of the item |
spanCount |
int : The total number of spans in the grid |
Returns | |
---|---|
int |
The final span position of the item. Should be between 0 (inclusive) and
spanCount (exclusive)
|
getSpanSize
public abstract int getSpanSize (int position)
Returns the number of span occupied by the item at position
.
Parameters | |
---|---|
position |
int : The adapter position of the item |
Returns | |
---|---|
int |
The number of spans occupied by the item at the provided position |
invalidateSpanGroupIndexCache
public void invalidateSpanGroupIndexCache ()
Clears the span group index cache. GridLayoutManager automatically calls this method when adapter changes occur.
invalidateSpanIndexCache
public void invalidateSpanIndexCache ()
Clears the span index cache. GridLayoutManager automatically calls this method when adapter changes occur.
isSpanGroupIndexCacheEnabled
public boolean isSpanGroupIndexCacheEnabled ()
Returns whether results of getSpanGroupIndex(int, int)
method are cached or not.
Returns | |
---|---|
boolean |
True if results of getSpanGroupIndex(int, int) are cached.
|
isSpanIndexCacheEnabled
public boolean isSpanIndexCacheEnabled ()
Returns whether results of getSpanIndex(int, int)
method are cached or not.
Returns | |
---|---|
boolean |
True if results of getSpanIndex(int, int) are cached.
|
setSpanGroupIndexCacheEnabled
public void setSpanGroupIndexCacheEnabled (boolean cacheSpanGroupIndices)
Sets whether the results of getSpanGroupIndex(int, int)
method should be cached
or not. By default these values are not cached. If you are not overriding
getSpanGroupIndex(int, int)
with something highly performant, and you are using
spans to calculate scrollbar offset and range, you should set this to true for better
performance.
Parameters | |
---|---|
cacheSpanGroupIndices |
boolean : Whether results of getGroupSpanIndex should be cached or
not.
|
setSpanIndexCacheEnabled
public void setSpanIndexCacheEnabled (boolean cacheSpanIndices)
Sets whether the results of getSpanIndex(int, int)
method should be cached or
not. By default these values are not cached. If you are not overriding
getSpanIndex(int, int)
with something highly performant, you should set this
to true for better performance.
Parameters | |
---|---|
cacheSpanIndices |
boolean : Whether results of getSpanIndex should be cached or not.
|