belongs to Maven artifact com.android.support:recyclerview-v7:28.0.0-alpha1
RecyclerView.State
public
static
class
RecyclerView.State
extends Object
java.lang.Object | |
↳ | android.support.v7.widget.RecyclerView.State |
Contains useful information about the current RecyclerView state like target scroll position or view focus. State object can also keep arbitrary data, identified by resource ids.
Often times, RecyclerView components will need to pass information between each other. To provide a well defined data bus between components, RecyclerView passes the same State object to component callbacks and these components can use it to exchange data.
If you implement custom components, you can use State's put/get/remove methods to pass data between your components without needing to manage their lifecycles.
Summary
Public constructors | |
---|---|
RecyclerView.State()
|
Public methods | |
---|---|
boolean
|
didStructureChange()
|
<T>
T
|
get(int resourceId)
Gets the Object mapped from the specified id, or |
int
|
getItemCount()
Returns the total number of items that can be laid out. |
int
|
getRemainingScrollHorizontal()
Returns remaining horizontal scroll distance of an ongoing scroll animation(fling/ smoothScrollTo/SmoothScroller) in pixels. |
int
|
getRemainingScrollVertical()
Returns remaining vertical scroll distance of an ongoing scroll animation(fling/ smoothScrollTo/SmoothScroller) in pixels. |
int
|
getTargetScrollPosition()
If scroll is triggered to make a certain item visible, this value will return the adapter index of that item. |
boolean
|
hasTargetScrollPosition()
Returns if current scroll has a target position. |
boolean
|
isMeasuring()
Returns true if the RecyclerView is currently measuring the layout. |
boolean
|
isPreLayout()
Returns true if the |
void
|
put(int resourceId, Object data)
Adds a mapping from the specified id to the specified value, replacing the previous mapping from the specified key if there was one. |
void
|
remove(int resourceId)
Removes the mapping from the specified id, if there was any. |
String
|
toString()
|
boolean
|
willRunPredictiveAnimations()
Returns whether RecyclerView will run predictive animations in this layout pass or not. |
boolean
|
willRunSimpleAnimations()
Returns whether RecyclerView will run simple animations in this layout pass or not. |
Inherited methods | |
---|---|
From
class
java.lang.Object
|
Public constructors
Public methods
didStructureChange
boolean didStructureChange ()
Returns | |
---|---|
boolean |
true if the structure of the data set has changed since the last call to onLayoutChildren, false otherwise |
get
T get (int resourceId)
Gets the Object mapped from the specified id, or null
if no such data exists.
Parameters | |
---|---|
resourceId |
int : Id of the resource you want to remove. It is suggested to use R.id.*
to
preserve cross functionality and avoid conflicts.
|
Returns | |
---|---|
T |
getItemCount
int getItemCount ()
Returns the total number of items that can be laid out. Note that this number is not necessarily equal to the number of items in the adapter, so you should always use this number for your position calculations and never access the adapter directly.
RecyclerView listens for Adapter's notify events and calculates the effects of adapter data changes on existing Views. These calculations are used to decide which animations should be run.
To support predictive animations, RecyclerView may rewrite or reorder Adapter changes to present the correct state to LayoutManager in pre-layout pass.
For example, a newly added item is not included in pre-layout item count because
pre-layout reflects the contents of the adapter before the item is added. Behind the
scenes, RecyclerView offsets getViewForPosition(int)
calls such that
LayoutManager does not know about the new item's existence in pre-layout. The item will
be available in second layout pass and will be included in the item count. Similar
adjustments are made for moved and removed items as well.
You can get the adapter's item count via getItemCount()
method.
Returns | |
---|---|
int |
The number of items currently available |
See also:
getRemainingScrollHorizontal
int getRemainingScrollHorizontal ()
Returns remaining horizontal scroll distance of an ongoing scroll animation(fling/
smoothScrollTo/SmoothScroller) in pixels. Returns zero if getScrollState()
is
other than SCROLL_STATE_SETTLING
.
Returns | |
---|---|
int |
Remaining horizontal scroll distance |
getRemainingScrollVertical
int getRemainingScrollVertical ()
Returns remaining vertical scroll distance of an ongoing scroll animation(fling/
smoothScrollTo/SmoothScroller) in pixels. Returns zero if getScrollState()
is
other than SCROLL_STATE_SETTLING
.
Returns | |
---|---|
int |
Remaining vertical scroll distance |
getTargetScrollPosition
int getTargetScrollPosition ()
If scroll is triggered to make a certain item visible, this value will return the adapter index of that item.
Returns | |
---|---|
int |
Adapter index of the target item or
NO_POSITION if there is no target
position.
|
hasTargetScrollPosition
boolean hasTargetScrollPosition ()
Returns if current scroll has a target position.
Returns | |
---|---|
boolean |
true if scroll is being triggered to make a certain position visible |
See also:
isMeasuring
boolean isMeasuring ()
Returns true if the RecyclerView is currently measuring the layout. This value is
true
only if the LayoutManager opted into the auto measure API and RecyclerView
has non-exact measurement specs.
Note that if the LayoutManager supports predictive animations and it is calculating the
pre-layout step, this value will be false
even if the RecyclerView is in
onMeasure
call. This is because pre-layout means the previous state of the
RecyclerView and measurements made for that state cannot change the RecyclerView's size.
LayoutManager is always guaranteed to receive another call to
onLayoutChildren(Recycler, State)
when this happens.
Returns | |
---|---|
boolean |
True if the RecyclerView is currently calculating its bounds, false otherwise. |
isPreLayout
boolean isPreLayout ()
Returns true if the RecyclerView
is in the pre-layout step where it is having its
RecyclerView.LayoutManager
layout items where they will be at the beginning of a set of
predictive item animations.
Returns | |
---|---|
boolean |
put
void put (int resourceId, Object data)
Adds a mapping from the specified id to the specified value, replacing the previous mapping from the specified key if there was one.
Parameters | |
---|---|
resourceId |
int : Id of the resource you want to add. It is suggested to use R.id.* to
preserve cross functionality and avoid conflicts. |
data |
Object : The data you want to associate with the resourceId.
|
remove
void remove (int resourceId)
Removes the mapping from the specified id, if there was any.
Parameters | |
---|---|
resourceId |
int : Id of the resource you want to remove. It is suggested to use R.id.* to
preserve cross functionality and avoid conflicts.
|
toString
String toString ()
Returns | |
---|---|
String |
willRunPredictiveAnimations
boolean willRunPredictiveAnimations ()
Returns whether RecyclerView will run predictive animations in this layout pass or not.
Returns | |
---|---|
boolean |
true if RecyclerView is calculating predictive animations to be run at the end of the layout pass. |
willRunSimpleAnimations
boolean willRunSimpleAnimations ()
Returns whether RecyclerView will run simple animations in this layout pass or not.
Returns | |
---|---|
boolean |
true if RecyclerView is calculating simple animations to be run at the end of the layout pass. |
Annotations
Interfaces
- ActionMenuView.OnMenuItemClickListener
- PopupMenu.OnDismissListener
- PopupMenu.OnMenuItemClickListener
- RecyclerView.ChildDrawingOrderCallback
- RecyclerView.ItemAnimator.ItemAnimatorFinishedListener
- RecyclerView.LayoutManager.LayoutPrefetchRegistry
- RecyclerView.OnChildAttachStateChangeListener
- RecyclerView.OnItemTouchListener
- RecyclerView.RecyclerListener
- RecyclerView.SmoothScroller.ScrollVectorProvider
- SearchView.OnCloseListener
- SearchView.OnQueryTextListener
- SearchView.OnSuggestionListener
- ShareActionProvider.OnShareTargetSelectedListener
- ThemedSpinnerAdapter
- Toolbar.OnMenuItemClickListener
Classes
- ActionMenuView
- ActionMenuView.LayoutParams
- AppCompatAutoCompleteTextView
- AppCompatButton
- AppCompatCheckBox
- AppCompatCheckedTextView
- AppCompatEditText
- AppCompatImageButton
- AppCompatImageView
- AppCompatMultiAutoCompleteTextView
- AppCompatRadioButton
- AppCompatRatingBar
- AppCompatSeekBar
- AppCompatSpinner
- AppCompatTextView
- CardView
- DefaultItemAnimator
- DividerItemDecoration
- GridLayout
- GridLayout.Alignment
- GridLayout.LayoutParams
- GridLayout.Spec
- GridLayoutManager
- GridLayoutManager.DefaultSpanSizeLookup
- GridLayoutManager.LayoutParams
- GridLayoutManager.SpanSizeLookup
- LinearLayoutCompat
- LinearLayoutCompat.LayoutParams
- LinearLayoutManager
- LinearLayoutManager.LayoutChunkResult
- LinearSmoothScroller
- LinearSnapHelper
- ListPopupWindow
- OrientationHelper
- PagerSnapHelper
- PopupMenu
- RecyclerView
- RecyclerView.Adapter
- RecyclerView.AdapterDataObserver
- RecyclerView.EdgeEffectFactory
- RecyclerView.ItemAnimator
- RecyclerView.ItemAnimator.ItemHolderInfo
- RecyclerView.ItemDecoration
- RecyclerView.LayoutManager
- RecyclerView.LayoutManager.Properties
- RecyclerView.LayoutParams
- RecyclerView.OnFlingListener
- RecyclerView.OnScrollListener
- RecyclerView.RecycledViewPool
- RecyclerView.Recycler
- RecyclerView.SimpleOnItemTouchListener
- RecyclerView.SmoothScroller
- RecyclerView.SmoothScroller.Action
- RecyclerView.State
- RecyclerView.ViewCacheExtension
- RecyclerView.ViewHolder
- RecyclerViewAccessibilityDelegate
- RecyclerViewAccessibilityDelegate.ItemDelegate
- SearchView
- ShareActionProvider
- SimpleItemAnimator
- SnapHelper
- StaggeredGridLayoutManager
- StaggeredGridLayoutManager.LayoutParams
- SwitchCompat
- ThemedSpinnerAdapter.Helper
- Toolbar
- Toolbar.LayoutParams
- Toolbar.SavedState
- TooltipCompat