StableIdMode
class StableIdMode
kotlin.Any | ||
↳ | kotlin.Enum<androidx.recyclerview.widget.ConcatAdapter.Config.StableIdMode> | |
↳ | androidx.recyclerview.widget.ConcatAdapter.Config.StableIdMode |
Defines how ConcatAdapter
handle stable ids (Adapter#hasStableIds()
).
Summary
Enum values | |
---|---|
In this mode, |
|
In this mode, |
|
In this mode, |
Enum values
ISOLATED_STABLE_IDS
enum val ISOLATED_STABLE_IDS : ConcatAdapter.Config.StableIdMode
In this mode, ConcatAdapter
will return true
from ConcatAdapter#hasStableIds()
and will require all added Adapter
s to have stable ids. As two different adapters may return same stable ids because they are unaware of each-other, ConcatAdapter
will isolate each Adapter
's id pool from each other such that it will overwrite the reported stable id before reporting back to the RecyclerView
. In this mode, the value returned from ViewHolder#getItemId()
might differ from the value returned from Adapter#getItemId(int)
. Adding an adapter without stable ids will result in an IllegalArgumentException
.
NO_STABLE_IDS
enum val NO_STABLE_IDS : ConcatAdapter.Config.StableIdMode
In this mode, ConcatAdapter
ignores the stable ids reported by sub adapters. This is the default mode. Adding an Adapter
with stable ids will result in a warning as it will be ignored.
SHARED_STABLE_IDS
enum val SHARED_STABLE_IDS : ConcatAdapter.Config.StableIdMode
In this mode, ConcatAdapter
will return true
from ConcatAdapter#hasStableIds()
and will require all added Adapter
s to have stable ids. Unlike StableIdMode#ISOLATED_STABLE_IDS
, ConcatAdapter
will not override the returned item ids. In this mode, child Adapter
s must be aware of each-other and never return the same id unless and item is moved between Adapter
s. Adding an adapter without stable ids will result in an IllegalArgumentException
.