BaseGridView
public
abstract
class
BaseGridView
extends RecyclerView
| java.lang.Object | ||||
| ↳ | android.view.View | |||
| ↳ | android.view.ViewGroup | |||
| ↳ | androidx.recyclerview.widget.RecyclerView | |||
| ↳ | androidx.leanback.widget.BaseGridView | |||
An abstract base class for vertically and horizontally scrolling lists. The items come
from the RecyclerView.Adapter associated with this view.
Do not directly use this class, use VerticalGridView and HorizontalGridView.
The class is not intended to be subclassed other than VerticalGridView and
HorizontalGridView.
Summary
Nested classes | |
|---|---|
interface |
BaseGridView.OnKeyInterceptListener
Listener for intercepting key dispatch events. |
interface |
BaseGridView.OnLayoutCompletedListener
Interface for receiving notification when BaseGridView has completed a full layout calculation. |
interface |
BaseGridView.OnMotionInterceptListener
Listener for intercepting generic motion dispatch events. |
interface |
BaseGridView.OnTouchInterceptListener
Listener for intercepting touch dispatch events. |
interface |
BaseGridView.OnUnhandledKeyListener
|
interface |
BaseGridView.SmoothScrollByBehavior
Defines behavior of duration and interpolator for smoothScrollBy(). |
Constants | |
|---|---|
float |
ITEM_ALIGN_OFFSET_PERCENT_DISABLED
Value indicates that percent is not used. |
int |
SAVE_ALL_CHILD
Save on screen views plus save off screen child views without any limitation. |
int |
SAVE_LIMITED_CHILD
Save on screen views plus save off screen child views states up to
|
int |
SAVE_NO_CHILD
Dont save states of any child views. |
int |
SAVE_ON_SCREEN_CHILD
Only save on screen child views, the states are lost when they become off screen. |
int |
WINDOW_ALIGN_BOTH_EDGE
The first item and last item are aligned with the two edges of the viewport. |
int |
WINDOW_ALIGN_HIGH_EDGE
The last item is aligned with the high edge of the viewport when navigating to the end of list. |
int |
WINDOW_ALIGN_LOW_EDGE
The first item is aligned with the low edge of the viewport. |
int |
WINDOW_ALIGN_NO_EDGE
The focused item always stays in a key line location. |
float |
WINDOW_ALIGN_OFFSET_PERCENT_DISABLED
Value indicates that percent is not used. |
Inherited constants |
|---|
Inherited fields |
|---|
Public methods | |
|---|---|
void
|
addOnChildViewHolderSelectedListener(OnChildViewHolderSelectedListener listener)
Registers a callback to be invoked when an item in BaseGridView has been selected. |
final
void
|
addOnLayoutCompletedListener(BaseGridView.OnLayoutCompletedListener listener)
Registers a callback to be invoked when the BaseGridView completes a full layout calculation. |
void
|
animateIn()
Undo animateOut() and slide in child views. |
void
|
animateOut()
Temporarily slide out child views to bottom (for VerticalGridView) or end (for HorizontalGridView). |
boolean
|
dispatchKeyEvent(KeyEvent event)
|
boolean
|
dispatchTouchEvent(MotionEvent event)
|
View
|
focusSearch(int direction)
|
int
|
getChildDrawingOrder(int childCount, int i)
|
int
|
getHorizontalMargin()
This method is deprecated.
Use |
int
|
getHorizontalSpacing()
Returns the horizontal spacing in pixels between two child items. |
int
|
getInitialPrefetchItemCount()
Gets the number of items to prefetch in
|
int
|
getItemAlignmentOffset()
Returns number of pixels to the end of low edge. |
float
|
getItemAlignmentOffsetPercent()
Returns the offset percent for item alignment in addition to |
int
|
getItemAlignmentViewId()
Returns the id of the view to align with, or |
BaseGridView.OnUnhandledKeyListener
|
getOnUnhandledKeyListener()
Returns the unhandled key listener. |
final
int
|
getSaveChildrenLimitNumber()
Returns the limit used when when |
final
int
|
getSaveChildrenPolicy()
Returns the policy for saving children. |
int
|
getSelectedPosition()
Returns the adapter position of selected item. |
BaseGridView.SmoothScrollByBehavior
|
getSmoothScrollByBehavior()
Returns custom behavior for smoothScrollBy(). |
final
int
|
getSmoothScrollMaxPendingMoves()
When holding DPAD, DPAD events are generated faster than the grid view can scroll. |
final
float
|
getSmoothScrollSpeedFactor()
|
int
|
getVerticalMargin()
This method is deprecated.
Use |
int
|
getVerticalSpacing()
Returns the vertical spacing in pixels between two child items. |
void
|
getViewSelectedOffsets(View view, int[] offsets)
Returns the x/y offsets to final position from current position if the view is selected. |
int
|
getWindowAlignment()
Returns the method for focused item alignment in the view. |
int
|
getWindowAlignmentOffset()
Returns the offset in pixels for window alignment key line. |
float
|
getWindowAlignmentOffsetPercent()
Returns the offset percent for window alignment key line in addition to
|
boolean
|
hasOverlappingRendering()
|
boolean
|
hasPreviousViewInSameRow(int position)
Returns true if the view at the given position has a same row sibling in front of it. |
boolean
|
isChildLayoutAnimated()
Returns true if an animation will run when a child changes size or when adding or removing a child. |
boolean
|
isFocusDrawingOrderEnabled()
Returns true if draws selected child at last, false otherwise. |
final
boolean
|
isFocusSearchDisabled()
Returns true if focus search is disabled. |
boolean
|
isItemAlignmentOffsetWithPadding()
Returns true if applies padding to item alignment when
|
boolean
|
isScrollEnabled()
Returns true if scrolling is enabled, false otherwise. |
boolean
|
isWindowAlignmentPreferKeyLineOverHighEdge()
Returns whether prefer key line over high edge when |
boolean
|
isWindowAlignmentPreferKeyLineOverLowEdge()
Returns whether prefer key line over low edge when |
boolean
|
onRequestFocusInDescendants(int direction, Rect previouslyFocusedRect)
|
void
|
onRtlPropertiesChanged(int layoutDirection)
Notify layout manager that layout directionality has been updated |
void
|
removeOnChildViewHolderSelectedListener(OnChildViewHolderSelectedListener listener)
Remove the callback invoked when an item in BaseGridView has been selected. |
final
void
|
removeOnLayoutCompletedListener(BaseGridView.OnLayoutCompletedListener listener)
Removes a callback to be invoked when the BaseGridView completes a full layout calculation. |
void
|
removeView(View view)
|
void
|
removeViewAt(int index)
|
void
|
scrollToPosition(int position)
Convenience method to scroll to a certain position. |
void
|
setAnimateChildLayout(boolean animateChildLayout)
Sets whether ItemAnimator should run when a child changes size or when adding or removing a child. |
void
|
setChildrenVisibility(int visibility)
Changes and overrides children's visibility. |
void
|
setFocusDrawingOrderEnabled(boolean enabled)
Enables or disables the default "focus draw at last" order rule. |
final
void
|
setFocusSearchDisabled(boolean disabled)
Disables or enables focus search. |
void
|
setGravity(int gravity)
Sets the gravity used for child view positioning. |
void
|
setHasOverlappingRendering(boolean hasOverlapping)
|
void
|
setHorizontalMargin(int margin)
This method is deprecated.
Use |
void
|
setHorizontalSpacing(int spacing)
Sets the horizontal spacing in pixels between two child items. |
void
|
setInitialPrefetchItemCount(int itemCount)
Sets the number of items to prefetch in
|
void
|
setItemAlignmentOffset(int offset)
Sets number of pixels to the end of low edge. |
void
|
setItemAlignmentOffsetPercent(float offsetPercent)
Sets the offset percent for item alignment in addition to |
void
|
setItemAlignmentOffsetWithPadding(boolean withPadding)
Sets whether applies padding to item alignment when |
void
|
setItemAlignmentViewId(int viewId)
Sets the id of the view to align with. |
void
|
setItemMargin(int margin)
This method is deprecated.
use |
void
|
setItemSpacing(int spacing)
Sets the vertical and horizontal spacing in pixels between two child items. |
void
|
setLayoutEnabled(boolean layoutEnabled)
Enables or disables layout. |
void
|
setOnChildLaidOutListener(OnChildLaidOutListener listener)
Registers a callback to be invoked when an item in BaseGridView has been laid out. |
void
|
setOnChildSelectedListener(OnChildSelectedListener listener)
Registers a callback to be invoked when an item in BaseGridView has been selected. |
void
|
setOnChildViewHolderSelectedListener(OnChildViewHolderSelectedListener listener)
Registers a callback to be invoked when an item in BaseGridView has been selected. |
void
|
setOnKeyInterceptListener(BaseGridView.OnKeyInterceptListener listener)
Sets the key intercept listener. |
void
|
setOnMotionInterceptListener(BaseGridView.OnMotionInterceptListener listener)
Sets the generic motion intercept listener. |
void
|
setOnTouchInterceptListener(BaseGridView.OnTouchInterceptListener listener)
Sets the touch intercept listener. |
void
|
setOnUnhandledKeyListener(BaseGridView.OnUnhandledKeyListener listener)
Sets the unhandled key listener. |
void
|
setPruneChild(boolean pruneChild)
Enables or disables pruning of children. |
void
|
setRecyclerListener(RecyclerView.RecyclerListener listener)
Register a listener that will be notified whenever a child view is recycled. |
final
void
|
setSaveChildrenLimitNumber(int limitNumber)
Sets the limit number when |
final
void
|
setSaveChildrenPolicy(int savePolicy)
Sets the policy for saving children. |
void
|
setScrollEnabled(boolean scrollEnabled)
Enables or disables scrolling. |
void
|
setSelectedPosition(int position, int scrollExtra)
Changes the selected item immediately without animation, scrollExtra is applied in primary scroll direction. |
void
|
setSelectedPosition(int position)
Changes the selected item immediately without animation. |
void
|
setSelectedPosition(int position, ViewHolderTask task)
Perform a task on ViewHolder at given position after scroll to it. |
void
|
setSelectedPositionSmooth(int position, ViewHolderTask task)
Perform a task on ViewHolder at given position after smooth scrolling to it. |
void
|
setSelectedPositionSmooth(int position)
Changes the selected item and run an animation to scroll to the target position. |
final
void
|
setSmoothScrollByBehavior(BaseGridView.SmoothScrollByBehavior behavior)
Set custom behavior for smoothScrollBy(). |
final
void
|
setSmoothScrollMaxPendingMoves(int maxPendingMoves)
When holding DPAD, DPAD events are generated faster than the grid view can scroll. |
final
void
|
setSmoothScrollSpeedFactor(float smoothScrollSpeedFactor)
Set factor of how slow the smoothScroller should run. |
void
|
setVerticalMargin(int margin)
This method is deprecated.
Use |
void
|
setVerticalSpacing(int spacing)
Sets the vertical spacing in pixels between two child items. |
void
|
setWindowAlignment(int windowAlignment)
Sets the method for focused item alignment in the view. |
void
|
setWindowAlignmentOffset(int offset)
Sets the offset in pixels for window alignment key line. |
void
|
setWindowAlignmentOffsetPercent(float offsetPercent)
Sets the offset percent for window alignment key line in addition to |
void
|
setWindowAlignmentPreferKeyLineOverHighEdge(boolean preferKeyLineOverHighEdge)
Returns whether prefer key line over high edge when |
void
|
setWindowAlignmentPreferKeyLineOverLowEdge(boolean preferKeyLineOverLowEdge)
Sets whether prefer key line over low edge when |
void
|
smoothScrollBy(int dx, int dy, Interpolator interpolator)
Animate a scroll by the given amount of pixels along either axis. |
void
|
smoothScrollBy(int dx, int dy)
Animate a scroll by the given amount of pixels along either axis. |
void
|
smoothScrollToPosition(int position)
Starts a smooth scroll to an adapter position. |
Protected methods | |
|---|---|
boolean
|
dispatchGenericFocusedEvent(MotionEvent event)
|
void
|
onFocusChanged(boolean gainFocus, int direction, Rect previouslyFocusedRect)
|
Inherited methods | |
|---|---|
Constants
ITEM_ALIGN_OFFSET_PERCENT_DISABLED
public static final float ITEM_ALIGN_OFFSET_PERCENT_DISABLED
Value indicates that percent is not used.
Constant Value: -1.0
SAVE_ALL_CHILD
public static final int SAVE_ALL_CHILD
Save on screen views plus save off screen child views without any limitation. This might cause out of memory, only use it when you are dealing with limited data.
Constant Value: 3 (0x00000003)
SAVE_LIMITED_CHILD
public static final int SAVE_LIMITED_CHILD
Save on screen views plus save off screen child views states up to
getSaveChildrenLimitNumber().
Constant Value: 2 (0x00000002)
SAVE_NO_CHILD
public static final int SAVE_NO_CHILD
Dont save states of any child views.
Constant Value: 0 (0x00000000)
SAVE_ON_SCREEN_CHILD
public static final int SAVE_ON_SCREEN_CHILD
Only save on screen child views, the states are lost when they become off screen.
Constant Value: 1 (0x00000001)
WINDOW_ALIGN_BOTH_EDGE
public static final int WINDOW_ALIGN_BOTH_EDGE
The first item and last item are aligned with the two edges of the viewport. When navigating in the middle of list, the focus maintains a key line location.
The key line location is calculated by "windowAlignOffset" and "windowAlignOffsetPercent"; if neither of these two is defined, the default value is 1/2 of the size.
Constant Value: 3 (0x00000003)
WINDOW_ALIGN_HIGH_EDGE
public static final int WINDOW_ALIGN_HIGH_EDGE
The last item is aligned with the high edge of the viewport when navigating to the end of list. When navigating away from the end, the focus item is aligned to a key line location.
For HorizontalGridView, high edge refers to getWidth() - getPaddingRight() when RTL is false or getPaddingLeft() when RTL is true. For VerticalGridView, high edge refers to getHeight() - getPaddingBottom().
The key line location is calculated by "windowAlignOffset" and "windowAlignOffsetPercent"; if neither of these two is defined, the default value is 1/2 of the size.
Note if there are very few items between high edge and key line, use
setWindowAlignmentPreferKeyLineOverHighEdge(boolean) to control whether you prefer
to align the items to key line or high edge. Default is preferring key line.
Constant Value: 2 (0x00000002)
WINDOW_ALIGN_LOW_EDGE
public static final int WINDOW_ALIGN_LOW_EDGE
The first item is aligned with the low edge of the viewport. When navigating away from the first item, the focus item is aligned to a key line location.
For HorizontalGridView, low edge refers to getPaddingLeft() when RTL is false or getWidth() - getPaddingRight() when RTL is true. For VerticalGridView, low edge refers to getPaddingTop().
The key line location is calculated by "windowAlignOffset" and "windowAlignOffsetPercent"; if neither of these two is defined, the default value is 1/2 of the size.
Note if there are very few items between low edge and key line, use
setWindowAlignmentPreferKeyLineOverLowEdge(boolean) to control whether you prefer
to align the items to key line or low edge. Default is preferring low edge.
Constant Value: 1 (0x00000001)
WINDOW_ALIGN_NO_EDGE
public static final int WINDOW_ALIGN_NO_EDGE
The focused item always stays in a key line location.
The key line location is calculated by "windowAlignOffset" and "windowAlignOffsetPercent"; if neither of these two is defined, the default value is 1/2 of the size.
Constant Value: 0 (0x00000000)
WINDOW_ALIGN_OFFSET_PERCENT_DISABLED
public static final float WINDOW_ALIGN_OFFSET_PERCENT_DISABLED
Value indicates that percent is not used.
Constant Value: -1.0
Public methods
addOnChildViewHolderSelectedListener
public void addOnChildViewHolderSelectedListener (OnChildViewHolderSelectedListener listener)
Registers a callback to be invoked when an item in BaseGridView has been selected. Note that the listener may be invoked when there is a layout pending on the view, affording the listener an opportunity to adjust the upcoming layout based on the selection state.
| Parameters | |
|---|---|
listener |
OnChildViewHolderSelectedListener: The listener to be invoked.
|
addOnLayoutCompletedListener
public final void addOnLayoutCompletedListener (BaseGridView.OnLayoutCompletedListener listener)
Registers a callback to be invoked when the BaseGridView completes a full layout calculation.
| Parameters | |
|---|---|
listener |
BaseGridView.OnLayoutCompletedListener: The listener to be invoked.
|
animateIn
public void animateIn ()
Undo animateOut() and slide in child views.
animateOut
public void animateOut ()
Temporarily slide out child views to bottom (for VerticalGridView) or end
(for HorizontalGridView). Layout and scrolling will be suppressed until
animateIn() is called.
dispatchKeyEvent
public boolean dispatchKeyEvent (KeyEvent event)
| Parameters | |
|---|---|
event |
KeyEvent |
| Returns | |
|---|---|
boolean |
|
dispatchTouchEvent
public boolean dispatchTouchEvent (MotionEvent event)
| Parameters | |
|---|---|
event |
MotionEvent |
| Returns | |
|---|---|
boolean |
|
getChildDrawingOrder
public int getChildDrawingOrder (int childCount,
int i)
| Parameters | |
|---|---|
childCount |
int |
i |
int |
| Returns | |
|---|---|
int |
|
getHorizontalMargin
public int getHorizontalMargin ()
This method is deprecated.
Use getHorizontalSpacing()
Returns the spacing in pixels between two child items horizontally.
| Returns | |
|---|---|
int |
|
getHorizontalSpacing
public int getHorizontalSpacing ()
Returns the horizontal spacing in pixels between two child items.
| Returns | |
|---|---|
int |
The Horizontal spacing in pixels between two child items. |
getInitialPrefetchItemCount
public int getInitialPrefetchItemCount ()
Gets the number of items to prefetch in
RecyclerView.LayoutManager.collectInitialPrefetchPositions(int, RecyclerView.LayoutManager.LayoutPrefetchRegistry),
which defines how many inner items should be prefetched when this GridView is nested inside
another RecyclerView.
| Returns | |
|---|---|
int |
number of items to prefetch. |
getItemAlignmentOffset
public int getItemAlignmentOffset ()
Returns number of pixels to the end of low edge. Supports right to left layout direction. In
left to right or vertical case, it's the offset added to left/top edge. In right to left
case, it's the offset subtracted from right edge.
Item alignment settings are ignored for the child if ItemAlignmentFacet
is provided by RecyclerView.ViewHolder or FacetProviderAdapter.
| Returns | |
|---|---|
int |
The number of pixels to the end of low edge. |
getItemAlignmentOffsetPercent
public float getItemAlignmentOffsetPercent ()
Returns the offset percent for item alignment in addition to getItemAlignmentOffset().
| Returns | |
|---|---|
float |
Percentage to offset. E.g., 40 means 40% of the width from the
low edge, or ITEM_ALIGN_OFFSET_PERCENT_DISABLED if
disabled. Default value is 50.
|
getItemAlignmentViewId
public int getItemAlignmentViewId ()
Returns the id of the view to align with, or View.NO_ID for the root
RecyclerView.ViewHolder.itemView.
| Returns | |
|---|---|
int |
The id of the view to align with, or View.NO_ID for the root
RecyclerView.ViewHolder.itemView.
|
getOnUnhandledKeyListener
public BaseGridView.OnUnhandledKeyListener getOnUnhandledKeyListener ()
Returns the unhandled key listener.
| Returns | |
|---|---|
BaseGridView.OnUnhandledKeyListener |
The unhandled key listener. |
getSaveChildrenLimitNumber
public final int getSaveChildrenLimitNumber ()
Returns the limit used when when getSaveChildrenPolicy() is
SAVE_LIMITED_CHILD
| Returns | |
|---|---|
int |
|
getSaveChildrenPolicy
public final int getSaveChildrenPolicy ()
Returns the policy for saving children.
| Returns | |
|---|---|
int |
policy, one of SAVE_NO_CHILD
SAVE_ON_SCREEN_CHILD SAVE_LIMITED_CHILD SAVE_ALL_CHILD.
|
getSelectedPosition
public int getSelectedPosition ()
Returns the adapter position of selected item.
| Returns | |
|---|---|
int |
The adapter position of selected item. |
getSmoothScrollByBehavior
public BaseGridView.SmoothScrollByBehavior getSmoothScrollByBehavior ()
Returns custom behavior for smoothScrollBy().
| Returns | |
|---|---|
BaseGridView.SmoothScrollByBehavior |
Custom behavior for SmoothScrollBy(). Null for default behavior. |
getSmoothScrollMaxPendingMoves
public final int getSmoothScrollMaxPendingMoves ()
When holding DPAD, DPAD events are generated faster than the grid view can scroll. The
grid view counts unhandled DPAD events and complete the movement after user release DPAD.
If the value is set too high, the scrolling will last very long after DPAD is released. If
the value is set too low, it may miss many DPAD events. The default value is 10. If app
increases setSmoothScrollSpeedFactor(float), it may need decrease the max pending
DPAD events to avoid scrolling too long after DPAD release.
| Returns | |
|---|---|
int |
Maximum number of pending DPAD events to be remembered when smooth scroll cannot catch up speed of DPAD events being sent. |
getSmoothScrollSpeedFactor
public final float getSmoothScrollSpeedFactor ()
| Returns | |
|---|---|
float |
Factor of how slow the smoothScroller runs. Default value is 1f. |
getVerticalMargin
public int getVerticalMargin ()
This method is deprecated.
Use getVerticalSpacing()
Returns the spacing in pixels between two child items vertically.
| Returns | |
|---|---|
int |
|
getVerticalSpacing
public int getVerticalSpacing ()
Returns the vertical spacing in pixels between two child items.
| Returns | |
|---|---|
int |
The vertical spacing in pixels between two child items. |
getViewSelectedOffsets
public void getViewSelectedOffsets (View view, int[] offsets)
Returns the x/y offsets to final position from current position if the view is selected.
| Parameters | |
|---|---|
view |
View: The view to get offsets. |
offsets |
int: offsets[0] holds offset of X, offsets[1] holds offset of Y.
|
getWindowAlignment
public int getWindowAlignment ()
Returns the method for focused item alignment in the view.
| Returns | |
|---|---|
int |
WINDOW_ALIGN_BOTH_EDGE, WINDOW_ALIGN_LOW_EDGE,
WINDOW_ALIGN_HIGH_EDGE or WINDOW_ALIGN_NO_EDGE.
|
getWindowAlignmentOffset
public int getWindowAlignmentOffset ()
Returns the offset in pixels for window alignment key line.
| Returns | |
|---|---|
int |
The number of pixels to offset. If the offset is positive,
it is distance from low edge (see WINDOW_ALIGN_LOW_EDGE);
if the offset is negative, the absolute value is distance from high
edge (see WINDOW_ALIGN_HIGH_EDGE).
Default value is 0.
|
getWindowAlignmentOffsetPercent
public float getWindowAlignmentOffsetPercent ()
Returns the offset percent for window alignment key line in addition to
getWindowAlignmentOffset().
| Returns | |
|---|---|
float |
Percentage to offset. E.g., 40 means 40% of the width from the
low edge, or WINDOW_ALIGN_OFFSET_PERCENT_DISABLED if
disabled. Default value is 50.
|
hasOverlappingRendering
public boolean hasOverlappingRendering ()
| Returns | |
|---|---|
boolean |
|
hasPreviousViewInSameRow
public boolean hasPreviousViewInSameRow (int position)
Returns true if the view at the given position has a same row sibling in front of it. This will return true if first item view is not created.
| Parameters | |
|---|---|
position |
int: Position in adapter. |
| Returns | |
|---|---|
boolean |
True if the view at the given position has a same row sibling in front of it. |
isChildLayoutAnimated
public boolean isChildLayoutAnimated ()
Returns true if an animation will run when a child changes size or when adding or removing a child.
| Returns | |
|---|---|
boolean |
True if ItemAnimator is enabled, false otherwise. |
isFocusDrawingOrderEnabled
public boolean isFocusDrawingOrderEnabled ()
Returns true if draws selected child at last, false otherwise. Default is enabled.
| Returns | |
|---|---|
boolean |
True if draws selected child at last, false otherwise. |
isFocusSearchDisabled
public final boolean isFocusSearchDisabled ()
Returns true if focus search is disabled.
| Returns | |
|---|---|
boolean |
True if focus search is disabled. |
isItemAlignmentOffsetWithPadding
public boolean isItemAlignmentOffsetWithPadding ()
Returns true if applies padding to item alignment when
getItemAlignmentOffsetPercent() is 0 or 100; returns false otherwise.
When true:
Applies start/top padding when getItemAlignmentOffsetPercent() is 0.
Applies end/bottom padding when getItemAlignmentOffsetPercent() is 100.
Does not apply padding if getItemAlignmentOffsetPercent() is neither 0 nor 100.
When false: does not apply padding
| Returns | |
|---|---|
boolean |
|
isScrollEnabled
public boolean isScrollEnabled ()
Returns true if scrolling is enabled, false otherwise.
| Returns | |
|---|---|
boolean |
True if scrolling is enabled, false otherwise. |
isWindowAlignmentPreferKeyLineOverHighEdge
public boolean isWindowAlignmentPreferKeyLineOverHighEdge ()
Returns whether prefer key line over high edge when WINDOW_ALIGN_HIGH_EDGE is used.
When true, if there are very few items between high edge and key line, align items to key
line instead of align items to high edge.
Default value is true (aka prefer align to key line).
| Returns | |
|---|---|
boolean |
True to prefer key line over high edge, false otherwise. |
isWindowAlignmentPreferKeyLineOverLowEdge
public boolean isWindowAlignmentPreferKeyLineOverLowEdge ()
Returns whether prefer key line over low edge when WINDOW_ALIGN_LOW_EDGE is used.
When true, if there are very few items between low edge and key line, align items to key
line instead of align items to low edge.
Default value is false (aka prefer align to low edge).
| Returns | |
|---|---|
boolean |
True to prefer key line over low edge, false otherwise. |
onRequestFocusInDescendants
public boolean onRequestFocusInDescendants (int direction,
Rect previouslyFocusedRect)
| Parameters | |
|---|---|
direction |
int |
previouslyFocusedRect |
Rect |
| Returns | |
|---|---|
boolean |
|
onRtlPropertiesChanged
public void onRtlPropertiesChanged (int layoutDirection)
Notify layout manager that layout directionality has been updated
| Parameters | |
|---|---|
layoutDirection |
int |
removeOnChildViewHolderSelectedListener
public void removeOnChildViewHolderSelectedListener (OnChildViewHolderSelectedListener listener)
Remove the callback invoked when an item in BaseGridView has been selected.
| Parameters | |
|---|---|
listener |
OnChildViewHolderSelectedListener: The listener to be removed.
|
removeOnLayoutCompletedListener
public final void removeOnLayoutCompletedListener (BaseGridView.OnLayoutCompletedListener listener)
Removes a callback to be invoked when the BaseGridView completes a full layout calculation.
| Parameters | |
|---|---|
listener |
BaseGridView.OnLayoutCompletedListener: The listener to be invoked.
|
removeViewAt
public void removeViewAt (int index)
| Parameters | |
|---|---|
index |
int |
scrollToPosition
public void scrollToPosition (int position)
Convenience method to scroll to a certain position.
RecyclerView does not implement scrolling logic, rather forwards the call to
RecyclerView.LayoutManager.scrollToPosition(int)
| Parameters | |
|---|---|
position |
int: Scroll to this adapter position |
setAnimateChildLayout
public void setAnimateChildLayout (boolean animateChildLayout)
Sets whether ItemAnimator should run when a child changes size or when adding or removing a child.
| Parameters | |
|---|---|
animateChildLayout |
boolean: True to enable ItemAnimator, false to disable.
|
setChildrenVisibility
public void setChildrenVisibility (int visibility)
Changes and overrides children's visibility.
| Parameters | |
|---|---|
visibility |
int: See View.getVisibility().
|
setFocusDrawingOrderEnabled
public void setFocusDrawingOrderEnabled (boolean enabled)
Enables or disables the default "focus draw at last" order rule. Default is enabled.
| Parameters | |
|---|---|
enabled |
boolean: True to draw the selected child at last, false otherwise.
|
setFocusSearchDisabled
public final void setFocusSearchDisabled (boolean disabled)
Disables or enables focus search.
| Parameters | |
|---|---|
disabled |
boolean: True to disable focus search, false to enable.
|
setGravity
public void setGravity (int gravity)
Sets the gravity used for child view positioning. Defaults to GRAVITY_TOP|GRAVITY_START.
| Parameters | |
|---|---|
gravity |
int: See Gravity
|
setHasOverlappingRendering
public void setHasOverlappingRendering (boolean hasOverlapping)
| Parameters | |
|---|---|
hasOverlapping |
boolean |
setHorizontalMargin
public void setHorizontalMargin (int margin)
This method is deprecated.
Use setHorizontalSpacing(int)
Sets the spacing in pixels between two child items horizontally.
| Parameters | |
|---|---|
margin |
int |
setHorizontalSpacing
public void setHorizontalSpacing (int spacing)
Sets the horizontal spacing in pixels between two child items.
| Parameters | |
|---|---|
spacing |
int: Horizontal spacing in pixels between two child items.
|
setInitialPrefetchItemCount
public void setInitialPrefetchItemCount (int itemCount)
Sets the number of items to prefetch in
RecyclerView.LayoutManager.collectInitialPrefetchPositions(int, RecyclerView.LayoutManager.LayoutPrefetchRegistry),
which defines how many inner items should be prefetched when this GridView is nested inside
another RecyclerView.
Set this value to the number of items this inner GridView will display when it is first scrolled into the viewport. RecyclerView will attempt to prefetch that number of items so they are ready, avoiding jank as the inner GridView is scrolled into the viewport.
For example, take a VerticalGridView of scrolling HorizontalGridViews. The rows always
have 6 items visible in them (or 7 if not aligned). Passing 6 to this method
for each inner GridView will enable RecyclerView's prefetching feature to do create/bind work
for 6 views within a row early, before it is scrolled on screen, instead of just the default
4.
Calling this method does nothing unless the LayoutManager is in a RecyclerView nested in another RecyclerView.
Note: Setting this value to be larger than the number of views that will be visible in this view can incur unnecessary bind work, and an increase to the number of Views created and in active use.
| Parameters | |
|---|---|
itemCount |
int: Number of items to prefetch |
setItemAlignmentOffset
public void setItemAlignmentOffset (int offset)
Sets number of pixels to the end of low edge. Supports right to left layout direction.
Item alignment settings are ignored for the child if ItemAlignmentFacet
is provided by RecyclerView.ViewHolder or FacetProviderAdapter.
| Parameters | |
|---|---|
offset |
int: In left to right or vertical case, it's the offset added to left/top edge.
In right to left case, it's the offset subtracted from right edge.
|
setItemAlignmentOffsetPercent
public void setItemAlignmentOffsetPercent (float offsetPercent)
Sets the offset percent for item alignment in addition to getItemAlignmentOffset().
Item alignment settings are ignored for the child if ItemAlignmentFacet
is provided by RecyclerView.ViewHolder or FacetProviderAdapter.
| Parameters | |
|---|---|
offsetPercent |
float: Percentage to offset. E.g., 40 means 40% of the
width from the low edge. Use
ITEM_ALIGN_OFFSET_PERCENT_DISABLED to disable.
|
setItemAlignmentOffsetWithPadding
public void setItemAlignmentOffsetWithPadding (boolean withPadding)
Sets whether applies padding to item alignment when getItemAlignmentOffsetPercent()
is 0 or 100.
When true:
Applies start/top padding if getItemAlignmentOffsetPercent() is 0.
Applies end/bottom padding if getItemAlignmentOffsetPercent() is 100.
Does not apply padding if getItemAlignmentOffsetPercent() is neither 0 nor 100.
When false: does not apply padding
| Parameters | |
|---|---|
withPadding |
boolean |
setItemAlignmentViewId
public void setItemAlignmentViewId (int viewId)
Sets the id of the view to align with. Use View.NO_ID (default)
for the root RecyclerView.ViewHolder.itemView.
Item alignment settings on BaseGridView are if ItemAlignmentFacet
is provided by RecyclerView.ViewHolder or FacetProviderAdapter.
| Parameters | |
|---|---|
viewId |
int |
setItemMargin
public void setItemMargin (int margin)
This method is deprecated.
use setItemSpacing(int)
Sets the spacing in pixels between two child items.
| Parameters | |
|---|---|
margin |
int |
setItemSpacing
public void setItemSpacing (int spacing)
Sets the vertical and horizontal spacing in pixels between two child items.
| Parameters | |
|---|---|
spacing |
int: Vertical and horizontal spacing in pixels between two child items.
|
setLayoutEnabled
public void setLayoutEnabled (boolean layoutEnabled)
Enables or disables layout. All children will be removed when layout is disabled.
| Parameters | |
|---|---|
layoutEnabled |
boolean: True to enable layout, false otherwise.
|
setOnChildLaidOutListener
public void setOnChildLaidOutListener (OnChildLaidOutListener listener)
Registers a callback to be invoked when an item in BaseGridView has been laid out.
| Parameters | |
|---|---|
listener |
OnChildLaidOutListener: The listener to be invoked.
|
setOnChildSelectedListener
public void setOnChildSelectedListener (OnChildSelectedListener listener)
Registers a callback to be invoked when an item in BaseGridView has been selected. Note that the listener may be invoked when there is a layout pending on the view, affording the listener an opportunity to adjust the upcoming layout based on the selection state.
| Parameters | |
|---|---|
listener |
OnChildSelectedListener: The listener to be invoked.
|
setOnChildViewHolderSelectedListener
public void setOnChildViewHolderSelectedListener (OnChildViewHolderSelectedListener listener)
Registers a callback to be invoked when an item in BaseGridView has
been selected. Note that the listener may be invoked when there is a
layout pending on the view, affording the listener an opportunity to
adjust the upcoming layout based on the selection state.
This method will clear all existing listeners added by
addOnChildViewHolderSelectedListener(OnChildViewHolderSelectedListener).
| Parameters | |
|---|---|
listener |
OnChildViewHolderSelectedListener: The listener to be invoked.
|
setOnKeyInterceptListener
public void setOnKeyInterceptListener (BaseGridView.OnKeyInterceptListener listener)
Sets the key intercept listener.
| Parameters | |
|---|---|
listener |
BaseGridView.OnKeyInterceptListener: The key intercept listener.
|
setOnMotionInterceptListener
public void setOnMotionInterceptListener (BaseGridView.OnMotionInterceptListener listener)
Sets the generic motion intercept listener.
| Parameters | |
|---|---|
listener |
BaseGridView.OnMotionInterceptListener: The motion intercept listener.
|
setOnTouchInterceptListener
public void setOnTouchInterceptListener (BaseGridView.OnTouchInterceptListener listener)
Sets the touch intercept listener.
| Parameters | |
|---|---|
listener |
BaseGridView.OnTouchInterceptListener: The touch intercept listener.
|
setOnUnhandledKeyListener
public void setOnUnhandledKeyListener (BaseGridView.OnUnhandledKeyListener listener)
Sets the unhandled key listener.
| Parameters | |
|---|---|
listener |
BaseGridView.OnUnhandledKeyListener: The unhandled key intercept listener.
|
setPruneChild
public void setPruneChild (boolean pruneChild)
Enables or disables pruning of children. Disable is useful during transition.
| Parameters | |
|---|---|
pruneChild |
boolean: True to prune children out side visible area, false to enable.
|
setRecyclerListener
public void setRecyclerListener (RecyclerView.RecyclerListener listener)
Register a listener that will be notified whenever a child view is recycled.
This listener will be called when a LayoutManager or the RecyclerView decides that a child view is no longer needed. If an application associates expensive or heavyweight data with item views, this may be a good place to release or free those resources.
| Parameters | |
|---|---|
listener |
RecyclerView.RecyclerListener: Listener to register, or null to clear
|
setSaveChildrenLimitNumber
public final void setSaveChildrenLimitNumber (int limitNumber)
Sets the limit number when getSaveChildrenPolicy() is SAVE_LIMITED_CHILD.
| Parameters | |
|---|---|
limitNumber |
int |
setSaveChildrenPolicy
public final void setSaveChildrenPolicy (int savePolicy)
Sets the policy for saving children.
| Parameters | |
|---|---|
savePolicy |
int: One of SAVE_NO_CHILD SAVE_ON_SCREEN_CHILD
SAVE_LIMITED_CHILD SAVE_ALL_CHILD.
|
setScrollEnabled
public void setScrollEnabled (boolean scrollEnabled)
Enables or disables scrolling. Disable is useful during transition.
| Parameters | |
|---|---|
scrollEnabled |
boolean: True to enable scroll, false to disable.
|
setSelectedPosition
public void setSelectedPosition (int position,
int scrollExtra)
Changes the selected item immediately without animation, scrollExtra is
applied in primary scroll direction. The scrollExtra will be kept until
another setSelectedPosition(int) or setSelectedPositionSmooth(int) call.
| Parameters | |
|---|---|
position |
int |
scrollExtra |
int |
setSelectedPosition
public void setSelectedPosition (int position)
Changes the selected item immediately without animation.
| Parameters | |
|---|---|
position |
int |
setSelectedPosition
public void setSelectedPosition (int position,
ViewHolderTask task)
Perform a task on ViewHolder at given position after scroll to it.
| Parameters | |
|---|---|
position |
int: Position of item in adapter. |
task |
ViewHolderTask: Task to executed on the ViewHolder at a given position.
|
setSelectedPositionSmooth
public void setSelectedPositionSmooth (int position,
ViewHolderTask task)
Perform a task on ViewHolder at given position after smooth scrolling to it.
| Parameters | |
|---|---|
position |
int: Position of item in adapter. |
task |
ViewHolderTask: Task to executed on the ViewHolder at a given position.
|
setSelectedPositionSmooth
public void setSelectedPositionSmooth (int position)
Changes the selected item and run an animation to scroll to the target position.
| Parameters | |
|---|---|
position |
int: Adapter position of the item to select.
|
setSmoothScrollByBehavior
public final void setSmoothScrollByBehavior (BaseGridView.SmoothScrollByBehavior behavior)
Set custom behavior for smoothScrollBy().
| Parameters | |
|---|---|
behavior |
BaseGridView.SmoothScrollByBehavior: Custom behavior of SmoothScrollBy(). Null for default behavior.
|
setSmoothScrollMaxPendingMoves
public final void setSmoothScrollMaxPendingMoves (int maxPendingMoves)
When holding DPAD, DPAD events are generated faster than the grid view can scroll. The
grid view counts unhandled DPAD events and completes the movement after user release DPAD.
If the value is set too high, the scrolling will last very long after DPAD is released. If
the value is set too low, it may miss many DPAD events. The default value is 10. If app
increases setSmoothScrollSpeedFactor(float), it may need decrease the max pending
DPAD events to avoid scrolling too long after DPAD release.
| Parameters | |
|---|---|
maxPendingMoves |
int: Maximum number of pending DPAD events to be remembered.
|
setSmoothScrollSpeedFactor
public final void setSmoothScrollSpeedFactor (float smoothScrollSpeedFactor)
Set factor of how slow the smoothScroller should run. For example when set to 2f, the smooth scroller is twice slower. The value is 1f by default.
| Parameters | |
|---|---|
smoothScrollSpeedFactor |
float: Factor of how slow the smooth scroll is.
|
setVerticalMargin
public void setVerticalMargin (int margin)
This method is deprecated.
Use setVerticalSpacing(int)
Sets the spacing in pixels between two child items vertically.
| Parameters | |
|---|---|
margin |
int |
setVerticalSpacing
public void setVerticalSpacing (int spacing)
Sets the vertical spacing in pixels between two child items.
| Parameters | |
|---|---|
spacing |
int: Vertical spacing between two child items.
|
setWindowAlignment
public void setWindowAlignment (int windowAlignment)
Sets the method for focused item alignment in the view.
| Parameters | |
|---|---|
windowAlignment |
int: WINDOW_ALIGN_BOTH_EDGE,
WINDOW_ALIGN_LOW_EDGE, WINDOW_ALIGN_HIGH_EDGE or
WINDOW_ALIGN_NO_EDGE.
|
setWindowAlignmentOffset
public void setWindowAlignmentOffset (int offset)
Sets the offset in pixels for window alignment key line.
| Parameters | |
|---|---|
offset |
int: The number of pixels to offset. If the offset is positive,
it is distance from low edge (see WINDOW_ALIGN_LOW_EDGE);
if the offset is negative, the absolute value is distance from high
edge (see WINDOW_ALIGN_HIGH_EDGE).
Default value is 0.
|
setWindowAlignmentOffsetPercent
public void setWindowAlignmentOffsetPercent (float offsetPercent)
Sets the offset percent for window alignment key line in addition to getWindowAlignmentOffset().
| Parameters | |
|---|---|
offsetPercent |
float: Percentage to offset. E.g., 40 means 40% of the
width from low edge. Use
WINDOW_ALIGN_OFFSET_PERCENT_DISABLED to disable.
Default value is 50.
|
setWindowAlignmentPreferKeyLineOverHighEdge
public void setWindowAlignmentPreferKeyLineOverHighEdge (boolean preferKeyLineOverHighEdge)
Returns whether prefer key line over high edge when WINDOW_ALIGN_HIGH_EDGE is used.
When true, if there are very few items between high edge and key line, align items to key
line instead of align items to high edge.
Default value is true (aka prefer align to key line).
| Parameters | |
|---|---|
preferKeyLineOverHighEdge |
boolean: True to prefer key line over high edge, false otherwise.
|
setWindowAlignmentPreferKeyLineOverLowEdge
public void setWindowAlignmentPreferKeyLineOverLowEdge (boolean preferKeyLineOverLowEdge)
Sets whether prefer key line over low edge when WINDOW_ALIGN_LOW_EDGE is used.
When true, if there are very few items between low edge and key line, align items to key
line instead of align items to low edge.
Default value is false (aka prefer align to low edge).
| Parameters | |
|---|---|
preferKeyLineOverLowEdge |
boolean: True to prefer key line over low edge, false otherwise.
|
smoothScrollBy
public void smoothScrollBy (int dx,
int dy,
Interpolator interpolator)
Animate a scroll by the given amount of pixels along either axis.
| Parameters | |
|---|---|
dx |
int: Pixels to scroll horizontally |
dy |
int: Pixels to scroll vertically |
interpolator |
Interpolator: Interpolator to be used for scrolling. If it is
null, RecyclerView will use an internal default interpolator.
|
smoothScrollBy
public void smoothScrollBy (int dx,
int dy)
Animate a scroll by the given amount of pixels along either axis.
| Parameters | |
|---|---|
dx |
int: Pixels to scroll horizontally |
dy |
int: Pixels to scroll vertically
|
smoothScrollToPosition
public void smoothScrollToPosition (int position)
Starts a smooth scroll to an adapter position.
To support smooth scrolling, you must override
RecyclerView.LayoutManager.smoothScrollToPosition(RecyclerView, State, int) and create a
RecyclerView.SmoothScroller.
RecyclerView.LayoutManager is responsible for creating the actual scroll action. If you want to
provide a custom smooth scroll logic, override
RecyclerView.LayoutManager.smoothScrollToPosition(RecyclerView, State, int) in your
LayoutManager.
| Parameters | |
|---|---|
position |
int: The adapter position to scroll to |
Protected methods
dispatchGenericFocusedEvent
protected boolean dispatchGenericFocusedEvent (MotionEvent event)
| Parameters | |
|---|---|
event |
MotionEvent |
| Returns | |
|---|---|
boolean |
|
onFocusChanged
protected void onFocusChanged (boolean gainFocus,
int direction,
Rect previouslyFocusedRect)
| Parameters | |
|---|---|
gainFocus |
boolean |
direction |
int |
previouslyFocusedRect |
Rect |
Content and code samples on this page are subject to the licenses described in the Content License. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2020-06-24 UTC.