Package icyllis.modernui.widget

# Class AbsListView

java.lang.Object
icyllis.modernui.view.View
icyllis.modernui.view.ViewGroup
icyllis.modernui.widget.AdapterView<ListAdapter>
icyllis.modernui.widget.AbsListView

All Implemented Interfaces:
  `Drawable.Callback`, `ViewManager`, `ViewParent`, `Filter.FilterListener`

Direct Known Subclasses:
  `GridView`, `ListView`

public abstract class AbsListView extends AdapterView<ListAdapter> implements Filter.FilterListener
Base class that can be used to implement virtualized lists of items. A list does not have a spatial definition here. For instance, subclasses of this class can display the content of the list in a grid, in a carousel, as stack, etc.

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `static class`
  `AbsListView.LayoutParams`
  AbsListView extends LayoutParams to provide a place to hold the view type.
  `static interface`
  `AbsListView.MultiChoiceModeListener`
  A MultiChoiceModeListener receives events for `CHOICE_MODE_MULTIPLE_MODAL`.
  `static interface`
  `AbsListView.OnScrollListener`
  Interface definition for a callback to be invoked when the list or grid has been scrolled.
  `static interface`
  `AbsListView.RecyclerListener`
  A RecyclerListener is used to receive a notification whenever a View is placed inside the RecycleBin's scrap heap.
  `static interface`
  `AbsListView.SelectionBoundsAdjuster`
  The top-level view of a list item can implement this interface to allow itself to modify the bounds of the selection shown for that item.

  ## Nested classes/interfaces inherited from class icyllis.modernui.widget.AdapterView

  `AdapterView.AdapterContextMenuInfo, AdapterView.OnItemClickListener, AdapterView.OnItemLongClickListener, AdapterView.OnItemSelectedListener`

  ## Nested classes/interfaces inherited from class icyllis.modernui.view.ViewGroup

  `ViewGroup.MarginLayoutParams`

  ## Nested classes/interfaces inherited from class icyllis.modernui.view.View

  `View.DragShadow, View.Focusable, View.FocusableMode, View.FocusDirection, View.FocusRealDirection, View.LayoutDir, View.NestedScrollType, View.OnAttachStateChangeListener, View.OnClickListener, View.OnContextClickListener, View.OnCreateContextMenuListener, View.OnDragListener, View.OnFocusChangeListener, View.OnGenericMotionListener, View.OnHoverListener, View.OnKeyListener, View.OnLayoutChangeListener, View.OnLongClickListener, View.OnScrollChangeListener, View.OnTouchListener, View.ResolvedLayoutDir, View.ScrollAxis, View.ScrollBarStyle, View.ScrollIndicators, View.TextAlignment, View.Visibility`

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final int`
  `CHOICE_MODE_MULTIPLE`
  The list allows multiple choices
  `static final int`
  `CHOICE_MODE_MULTIPLE_MODAL`
  The list allows multiple choices in a modal selection mode
  `static final int`
  `CHOICE_MODE_NONE`
  Normal list that does not indicate choices
  `static final int`
  `CHOICE_MODE_SINGLE`
  The list allows up to one choice
  `static final int`
  `TRANSCRIPT_MODE_ALWAYS_SCROLL`
  The list will automatically scroll to the bottom, no matter what items are currently visible.
  `static final int`
  `TRANSCRIPT_MODE_DISABLED`
  Disables the transcript mode.
  `static final int`
  `TRANSCRIPT_MODE_NORMAL`
  The list will automatically scroll to the bottom when a data set change notification is received and only if the last item is already visible on screen.

  ### Fields inherited from class icyllis.modernui.widget.AdapterView

  `INVALID_POSITION, INVALID_ROW_ID, ITEM_VIEW_TYPE_HEADER_OR_FOOTER, ITEM_VIEW_TYPE_IGNORE`

  ### Fields inherited from class icyllis.modernui.view.ViewGroup

  `CLIP_TO_PADDING_MASK, FLAG_DISALLOW_INTERCEPT, FOCUS_AFTER_DESCENDANTS, FOCUS_BEFORE_DESCENDANTS, FOCUS_BLOCK_DESCENDANTS`

  ### Fields inherited from class icyllis.modernui.view.View

  `ALPHA, BOTTOM, EMPTY_STATE_SET, ENABLED_FOCUSED_SELECTED_STATE_SET, ENABLED_FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET, ENABLED_FOCUSED_STATE_SET, ENABLED_FOCUSED_WINDOW_FOCUSED_STATE_SET, ENABLED_SELECTED_STATE_SET, ENABLED_SELECTED_WINDOW_FOCUSED_STATE_SET, ENABLED_STATE_SET, ENABLED_WINDOW_FOCUSED_STATE_SET, FOCUS_BACKWARD, FOCUS_DOWN, FOCUS_FORWARD, FOCUS_LEFT, FOCUS_RIGHT, FOCUS_UP, FOCUSABLE, FOCUSABLE_AUTO, FOCUSABLES_ALL, FOCUSABLES_TOUCH_MODE, FOCUSED_SELECTED_STATE_SET, FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET, FOCUSED_STATE_SET, FOCUSED_WINDOW_FOCUSED_STATE_SET, GONE, HAPTIC_FEEDBACK_ENABLED, INVISIBLE, LAYOUT_DIRECTION_INHERIT, LAYOUT_DIRECTION_LOCALE, LAYOUT_DIRECTION_LTR, LAYOUT_DIRECTION_RTL, LAYOUT_DIRECTION_UNDEFINED, LEFT, MEASURED_HEIGHT_STATE_SHIFT, MEASURED_SIZE_MASK, MEASURED_STATE_MASK, MEASURED_STATE_TOO_SMALL, mPaddingBottom, mPaddingLeft, mPaddingRight, mPaddingTop, mScrollX, mScrollY, NO_ID, NOT_FOCUSABLE, OVER_SCROLL_ALWAYS, OVER_SCROLL_IF_CONTENT_SCROLLS, OVER_SCROLL_NEVER, PRESSED_ENABLED_FOCUSED_SELECTED_STATE_SET, PRESSED_ENABLED_FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET, PRESSED_ENABLED_FOCUSED_STATE_SET, PRESSED_ENABLED_FOCUSED_WINDOW_FOCUSED_STATE_SET, PRESSED_ENABLED_SELECTED_STATE_SET, PRESSED_ENABLED_SELECTED_WINDOW_FOCUSED_STATE_SET, PRESSED_ENABLED_STATE_SET, PRESSED_ENABLED_WINDOW_FOCUSED_STATE_SET, PRESSED_FOCUSED_SELECTED_STATE_SET, PRESSED_FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET, PRESSED_FOCUSED_STATE_SET, PRESSED_FOCUSED_WINDOW_FOCUSED_STATE_SET, PRESSED_SELECTED_STATE_SET, PRESSED_SELECTED_WINDOW_FOCUSED_STATE_SET, PRESSED_STATE_SET, PRESSED_WINDOW_FOCUSED_STATE_SET, RIGHT, ROTATION, ROTATION_X, ROTATION_Y, SCALE_X, SCALE_Y, SCROLL_AXIS_HORIZONTAL, SCROLL_AXIS_NONE, SCROLL_AXIS_VERTICAL, SCROLL_INDICATOR_BOTTOM, SCROLL_INDICATOR_END, SCROLL_INDICATOR_LEFT, SCROLL_INDICATOR_RIGHT, SCROLL_INDICATOR_START, SCROLL_INDICATOR_TOP, SCROLL_X, SCROLL_Y, SCROLLBARS_INSIDE_INSET, SCROLLBARS_INSIDE_OVERLAY, SCROLLBARS_OUTSIDE_INSET, SCROLLBARS_OUTSIDE_OVERLAY, SELECTED_STATE_SET, SELECTED_WINDOW_FOCUSED_STATE_SET, SOUND_EFFECTS_ENABLED, TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_GRAVITY, TEXT_ALIGNMENT_INHERIT, TEXT_ALIGNMENT_TEXT_END, TEXT_ALIGNMENT_TEXT_START, TEXT_ALIGNMENT_VIEW_END, TEXT_ALIGNMENT_VIEW_START, TEXT_DIRECTION_ANY_RTL, TEXT_DIRECTION_FIRST_STRONG, TEXT_DIRECTION_FIRST_STRONG_LTR, TEXT_DIRECTION_FIRST_STRONG_RTL, TEXT_DIRECTION_INHERIT, TEXT_DIRECTION_LOCALE, TEXT_DIRECTION_LTR, TEXT_DIRECTION_RTL, TOP, TRANSLATION_X, TRANSLATION_Y, TRANSLATION_Z, TYPE_NON_TOUCH, TYPE_TOUCH, VIEW_MARKER, VISIBLE, WINDOW_FOCUSED_STATE_SET, X, Y, Z`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `AbsListView(Context context)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `addTouchables(ArrayList<View> views)`
  Add any touchable views that are descendants of this view (possibly including this view if it is touchable itself) to views.
  `boolean`
  `canScrollList(int direction)`
  Check if the items in the list can be scrolled in a certain direction.
  `protected boolean`
  `checkLayoutParams(ViewGroup.LayoutParams p)`
  Check whether given params fit to this view group.
  `void`
  `clearChoices()`
  Clear any choices previously set
  `protected int`
  `computeVerticalScrollExtent()`
  Compute the vertical extent of the vertical scrollbar's thumb within the vertical range.
  `protected int`
  `computeVerticalScrollOffset()`
  Compute the vertical offset of the vertical scrollbar's thumb within the horizontal range.
  `protected int`
  `computeVerticalScrollRange()`
  Compute the vertical range that the vertical scrollbar represents.
  `protected void`
  `dispatchDraw(Canvas canvas)`
  Draw the child views.
  `void`
  `dispatchDrawableHotspotChanged(float x, float y)`
  Dispatches drawable hotspot changes to child views that meet at least one of the following criteria: Returns `false` from both `View.isClickable()` and `View.isLongClickable()` Requests duplication of parent state via `View.setDuplicateParentStateEnabled(boolean)`
  `protected void`
  `dispatchSetPressed(boolean pressed)`
  Dispatch setPressed to all of this View's children.
  `protected void`
  `drawableStateChanged()`
  This function is called whenever the state of the view changes in such a way that it impacts the state of drawables being shown.
  `void`
  `fling(int velocityY)`
  Initiate a fling with the given velocity.
  `protected ViewGroup.LayoutParams`
  `generateDefaultLayoutParams()`
  Returns a set of default layout parameters.
  `protected ViewGroup.LayoutParams`
  `generateLayoutParams(ViewGroup.LayoutParams p)`
  Returns a safe set of layout parameters based on the supplied layout params.
  `int`
  `getBottomEdgeEffectColor()`
  Returns the bottom edge effect color.
  `int`
  `getCheckedItemCount()`
  Returns the number of items currently selected.
  `long[]`
  `getCheckedItemIds()`
  Returns the set of checked items ids.
  `int`
  `getCheckedItemPosition()`
  Returns the currently checked item.
  `SparseBooleanArray`
  `getCheckedItemPositions()`
  Returns the set of checked items in the list.
  `int`
  `getChoiceMode()`
  `protected ContextMenu.ContextMenuInfo`
  `getContextMenuInfo()`
  Views should implement this if they have extra information to associate with the context menu.
  `void`
  `getFocusedRect(Rect r)`
  When a view has focus and the user navigates away from it, the next view is searched for starting from the rectangle filled in by this method.
  `int`
  `getListPaddingBottom()`
  List padding is the maximum of the normal view's padding and the padding of the selector.
  `int`
  `getListPaddingLeft()`
  List padding is the maximum of the normal view's padding and the padding of the selector.
  `int`
  `getListPaddingRight()`
  List padding is the maximum of the normal view's padding and the padding of the selector.
  `int`
  `getListPaddingTop()`
  List padding is the maximum of the normal view's padding and the padding of the selector.
  `View`
  `getSelectedView()`
  `Drawable`
  `getSelector()`
  Returns the selector `Drawable` that is used to draw the selection in the list.
  `int`
  `getTopEdgeEffectColor()`
  Returns the top edge effect color.
  `int`
  `getTranscriptMode()`
  Returns the current transcript mode.
  `protected void`
  `handleDataChanged()`
  `protected void`
  `internalSetPadding(int left, int top, int right, int bottom)`
  `void`
  `invalidateViews()`
  Causes all the views to be rebuilt and redrawn.
  `boolean`
  `isDrawSelectorOnTop()`
  Returns whether the selection highlight drawable should be drawn on top of the item or behind it.
  `boolean`
  `isItemChecked(int position)`
  Returns the checked state of the specified position.
  `boolean`
  `isSmoothScrollbarEnabled()`
  Returns the current state of the fast scroll feature.
  `boolean`
  `isStackFromBottom()`
  Indicates whether the content of this view is pinned to, or stacked from, the bottom edge.
  `protected void`
  `layoutChildren()`
  Subclasses must override this method to layout their children.
  `protected void`
  `onAttachedToWindow()`
  This is called when the view is attached to a window.
  `void`
  `onCancelPendingInputEvents()`
  Called as the result of a call to `View.cancelPendingInputEvents()` on this view or a parent view.
  `protected void`
  `onDetachedFromWindow()`
  This is called when the view is detached from a window.
  `void`
  `onDrawForeground(Canvas canvas)`
  Draw any foreground content for this view.
  `void`
  `onFilterComplete(int count)`
  Notifies the end of a filtering operation.
  `protected void`
  `onFocusChanged(boolean gainFocus, int direction, Rect previouslyFocusedRect)`
  Called by the view system when the focus state of this view changes.
  `boolean`
  `onGenericMotionEvent(MotionEvent event)`
  Implement this method to handle generic motion events.
  `boolean`
  `onInterceptTouchEvent(MotionEvent ev)`
  Implement this method to intercept all touch screen motion events.
  `boolean`
  `onKeyDown(int keyCode, KeyEvent event)`
  Default implementation: perform press of the view when `KeyEvent.KEY_ENTER`, `KeyEvent.KEY_KP_ENTER` or `KeyEvent.KEY_SPACE` is released, if the view is enabled and clickable.
  `boolean`
  `onKeyUp(int keyCode, KeyEvent event)`
  Default implementation: perform clicking of the view when `KeyEvent.KEY_ENTER`, `KeyEvent.KEY_KP_ENTER` or `KeyEvent.KEY_SPACE` is released.
  `protected void`
  `onLayout(boolean changed, int l, int t, int r, int b)`
  Subclasses should NOT override this method but `layoutChildren()` instead.
  `protected void`
  `onMeasure(int widthMeasureSpec, int heightMeasureSpec)`
  Measure the view and its content to determine the measured width and the measured height.
  `boolean`
  `onNestedFling(View target, float velocityX, float velocityY, boolean consumed)`
  Request a fling from a nested scroll.
  `void`
  `onNestedScroll(View target, int dxConsumed, int dyConsumed, int dxUnconsumed, int dyUnconsumed, int type, int[] consumed)`
  React to a nested scroll in progress.
  `void`
  `onNestedScrollAccepted(View child, View target, int axes, int type)`
  React to the successful claiming of a nested scroll operation.
  `protected void`
  `onOverScrolled(int scrollX, int scrollY, boolean clampedX, boolean clampedY)`
  Called by `View.overScrollBy(int, int, int, int, int, int, int, int, boolean)` to respond to the results of an over-scroll operation.
  `protected void`
  `onSizeChanged(int w, int h, int oldw, int oldh)`
  Called when width or height changed
  `boolean`
  `onStartNestedScroll(View child, View target, int axes, int type)`
  React to a descendant view initiating a nestable scroll operation, claiming the nested scroll operation if appropriate.
  `boolean`
  `onTouchEvent(MotionEvent ev)`
  Implement this method to handle touch screen motion events.
  `void`
  `onTouchModeChanged(boolean isInTouchMode)`
  `void`
  `onWindowFocusChanged(boolean hasWindowFocus)`
  Called when the window containing this view gains or loses focus.
  `boolean`
  `performItemClick(View view, int position, long id)`
  Call the OnItemClickListener, if it is defined.
  `int`
  `pointToPosition(int x, int y)`
  Maps a point to a position in the list.
  `long`
  `pointToRowId(int x, int y)`
  Maps a point to a the rowId of the item which intersects that point.
  `void`
  `reclaimViews(List<View> views)`
  Move all views (excluding headers and footers) held by this AbsListView into the supplied List.
  `void`
  `requestDisallowInterceptTouchEvent(boolean disallowIntercept)`
  Called when a child does not want this parent and its ancestors to intercept touch events with `ViewGroup.onInterceptTouchEvent(MotionEvent)`.
  `void`
  `requestLayout()`
  Call this when something has changed which has invalidated the layout of this view.
  `void`
  `scrollListBy(int y)`
  Scrolls the list items within the view by a specified number of pixels.
  `void`
  `setAdapter(ListAdapter adapter)`
  Sets the adapter that provides the data and the views to represent the data in this widget.
  `void`
  `setBottomEdgeEffectColor(int color)`
  Sets the bottom edge effect color.
  `void`
  `setChoiceMode(int choiceMode)`
  Defines the choice behavior for the List.
  `void`
  `setDrawSelectorOnTop(boolean onTop)`
  Controls whether the selection highlight drawable should be drawn on top of the item or behind it.
  `void`
  `setEdgeEffectColor(int color)`
  Sets the edge effect color for both top and bottom edge effects.
  `void`
  `setFriction(float friction)`
  The amount of friction applied to flings.
  `void`
  `setItemChecked(int position, boolean value)`
  Sets the checked state of the specified position.
  `void`
  `setMultiChoiceModeListener(AbsListView.MultiChoiceModeListener listener)`
  Set a `AbsListView.MultiChoiceModeListener` that will manage the lifecycle of the selection `ActionMode`.
  `void`
  `setOnScrollListener(AbsListView.OnScrollListener l)`
  Set the listener that will receive notifications every time the list scrolls.
  `void`
  `setRecyclerListener(AbsListView.RecyclerListener listener)`
  Sets the recycler listener to be notified whenever a View is set aside in the recycler for later reuse.
  `void`
  `setScrollIndicators(View up, View down)`
  `void`
  `setSelectionFromTop(int position, int y)`
  Sets the selected item and positions the selection y pixels from the top edge of the ListView.
  `void`
  `setSelector(Drawable sel)`
  `void`
  `setSmoothScrollbarEnabled(boolean enabled)`
  When smooth scrollbar is enabled, the position and size of the scrollbar thumb is computed based on the number of visible pixels in the visible items.
  `void`
  `setStackFromBottom(boolean stackFromBottom)`
  When stack from bottom is set to true, the list fills its content starting from the bottom of the view.
  `void`
  `setTopEdgeEffectColor(int color)`
  Sets the top edge effect color.
  `void`
  `setTranscriptMode(int mode)`
  Puts the list or grid into transcript mode.
  `void`
  `setVelocityScale(float scale)`
  Sets a scale factor for the fling velocity.
  `final boolean`
  `shouldDrawSelector()`
  `boolean`
  `showContextMenu(float x, float y)`
  Shows the context menu for this view anchored to the specified view-relative coordinate.
  `boolean`
  `showContextMenuForChild(View originalView, float x, float y)`
  Shows the context menu for the specified view or its ancestors anchored to the specified view-relative coordinate.
  `void`
  `smoothScrollBy(int distance, int duration)`
  Smoothly scroll by distance pixels over duration milliseconds.
  `void`
  `smoothScrollToPosition(int position)`
  Smoothly scroll to the specified adapter position.
  `void`
  `smoothScrollToPosition(int position, int boundPosition)`
  Smoothly scroll to the specified adapter position.
  `void`
  `smoothScrollToPositionFromTop(int position, int offset)`
  Smoothly scroll to the specified adapter position.
  `void`
  `smoothScrollToPositionFromTop(int position, int offset, int duration)`
  Smoothly scroll to the specified adapter position.
  `boolean`
  `verifyDrawable(Drawable dr)`
  If your view subclass is displaying its own Drawable objects, it should override this function and return true for any Drawable it is displaying.

  ### Methods inherited from class icyllis.modernui.widget.AdapterView

  `addView, addView, addView, addView, getAdapter, getCount, getEmptyView, getFirstVisiblePosition, getItemAtPosition, getItemIdAtPosition, getLastVisiblePosition, getOnItemClickListener, getOnItemLongClickListener, getOnItemSelectedListener, getPositionForView, getSelectedItem, getSelectedItemId, getSelectedItemPosition, removeAllViews, removeView, removeViewAt, setEmptyView, setFocusable, setFocusableInTouchMode, setOnClickListener, setOnItemClickListener, setOnItemLongClickListener, setOnItemSelectedListener, setSelection`

  ### Methods inherited from class icyllis.modernui.view.ViewGroup

  `addFocusables, addKeyboardNavigationClusters, addStatesFromChildren, addTransientView, addView, addViewInLayout, addViewInLayout, attachViewToParent, bringChildToFront, childDrawableStateChanged, childHasTransientStateChanged, cleanupLayoutState, clearChildFocus, clearDisappearingChildren, clearFocus, detachAllViewsFromParent, detachViewFromParent, detachViewFromParent, detachViewsFromParent, dispatchFinishTemporaryDetach, dispatchGenericPointerEvent, dispatchHoverEvent, dispatchKeyEvent, dispatchKeyShortcutEvent, dispatchSetActivated, dispatchSetSelected, dispatchStartTemporaryDetach, dispatchTouchEvent, dispatchVisibilityChanged, dispatchWindowFocusChanged, dispatchWindowVisibilityChanged, drawChild, endViewTransition, findFocus, findViewByPredicateTraversal, findViewTraversal, focusableViewAvailable, focusSearch, getChildAt, getChildCount, getChildDrawingOrder, getChildDrawingOrder, getChildMeasureSpec, getChildVisibleRect, getChildVisibleRect, getClipChildren, getClipToPadding, getDescendantFocusability, getFocusedChild, getLayoutTransition, getNestedScrollAxes, getTouchscreenBlocksFocus, getTransientView, getTransientViewCount, getTransientViewIndex, hasBooleanFlag, hasFocus, hasTransientState, indexOfChild, isChildrenDrawingOrderEnabled, isLayoutSuppressed, isTransitionGroup, jumpDrawablesToCurrentState, layout, measureChild, measureChildren, measureChildWithMargins, offsetChildrenTopAndBottom, offsetDescendantRectToMyCoords, offsetRectIntoDescendantCoords, onChildVisibilityChanged, onCreateDrawableState, onInterceptHoverEvent, onNestedPreFling, onNestedPreScroll, onRequestFocusInDescendants, onResolvePointerIcon, onSetLayoutParams, onStopNestedScroll, onViewAdded, onViewRemoved, removeAllViewsInLayout, removeDetachedView, removeTransientView, removeViewInLayout, removeViews, removeViewsInLayout, requestChildFocus, requestChildRectangleOnScreen, requestFocus, requestTransitionStart, resetResolvedDrawables, resolveDrawables, resolveLayoutDirection, resolveLayoutParams, resolvePadding, resolveRtlPropertiesIfNeeded, resolveTextAlignment, resolveTextDirection, restoreDefaultFocus, setAddStatesFromChildren, setBooleanFlag, setChildrenDrawingOrderEnabled, setClipChildren, setClipToPadding, setDescendantFocusability, setLayoutTransition, setTouchscreenBlocksFocus, setTransitionGroup, shouldDelayChildPressedState, startActionModeForChild, startViewTransition, suppressLayout, transformPointToViewLocal, updateViewLayout`

  ### Methods inherited from class icyllis.modernui.view.View

  `addFocusables, addOnAttachStateChangeListener, addOnLayoutChangeListener, awakenScrollBars, awakenScrollBars, callOnClick, cancelLongPress, cancelPendingInputEvents, canReceivePointerEvents, canResolveLayoutDirection, canResolveTextAlignment, canResolveTextDirection, canScrollHorizontally, canScrollVertically, combineMeasuredStates, computeHorizontalScrollExtent, computeHorizontalScrollOffset, computeHorizontalScrollRange, computeScroll, createContextMenu, dispatchGenericMotionEvent, dispatchNestedFling, dispatchNestedPreFling, dispatchNestedPreScroll, dispatchNestedScroll, dispatchPointerEvent, dp, draw, drawableHotspotChanged, findViewById, findViewByPredicate, findViewByPredicateInsideOut, focusSearch, forceHasOverlappingRendering, forceLayout, generateViewId, getAlpha, getAnimationMatrix, getBackground, getBaseline, getBottom, getBoundsOnScreen, getBoundsOnScreen, getContext, getDefaultSize, getDrawableState, getDrawingRect, getElevation, getFadingEdge, getFadingEdgeLength, getFocusable, getFocusables, getForeground, getForegroundGravity, getGlobalVisibleRect, getGlobalVisibleRect, getHandler, getHasOverlappingRendering, getHeight, getHitRect, getHorizontalScrollbarHeight, getHorizontalScrollbarThumbDrawable, getHorizontalScrollbarTrackDrawable, getId, getInverseMatrix, getKeyDispatcherState, getLayoutDirection, getLayoutParams, getLeft, getLocalVisibleRect, getLocationInWindow, getLocationOnScreen, getMatrix, getMeasuredHeight, getMeasuredHeightAndState, getMeasuredState, getMeasuredWidth, getMeasuredWidthAndState, getMinimumHeight, getMinimumWidth, getNextClusterForwardId, getNextFocusDownId, getNextFocusForwardId, getNextFocusLeftId, getNextFocusRightId, getNextFocusUpId, getOnFocusChangeListener, getOnLongClickListener, getOverScrollMode, getPaddingBottom, getPaddingEnd, getPaddingLeft, getPaddingRight, getPaddingStart, getPaddingTop, getParent, getPivotX, getPivotY, getRawLayoutDirection, getRawTextAlignment, getRawTextDirection, getRevealOnFocusHint, getRight, getRootView, getRotation, getRotationX, getRotationY, getScaleX, getScaleY, getScrollBarDefaultDelayBeforeFade, getScrollBarFadeDuration, getScrollBarSize, getScrollBarStyle, getScrollIndicators, getScrollX, getScrollY, getStateListAnimator, getSuggestedMinimumHeight, getSuggestedMinimumWidth, getTag, getTextAlignment, getTextDirection, getTooltipText, getTooltipView, getTop, getTouchables, getTransitionAlpha, getTransitionName, getTranslationX, getTranslationY, getTranslationZ, getVerticalFadingEdgeLength, getVerticalScrollbarThumbDrawable, getVerticalScrollbarTrackDrawable, getVerticalScrollbarWidth, getViewRoot, getViewTreeObserver, getVisibility, getWidth, getWindowAttachCount, getWindowVisibility, getX, getY, getZ, hasExplicitFocusable, hasFocusable, hasIdentityMatrix, hasNestedScrollingParent, hasOnClickListeners, hasOnLongClickListeners, hasOverlappingRendering, hasTranslationTransientState, hasWindowFocus, invalidate, invalidateDrawable, isActivated, isAttachedToWindow, isClickable, isContextClickable, isDuplicateParentStateEnabled, isEnabled, isFocusable, isFocusableInTouchMode, isFocused, isFocusedByDefault, isForegroundInsidePadding, isHapticFeedbackEnabled, isHorizontalFadingEdgeEnabled, isHorizontalScrollBarEnabled, isHovered, isInLayout, isInScrollingContainer, isInTouchMode, isKeyboardNavigationCluster, isLaidOut, isLayoutDirectionInherited, isLayoutDirectionResolved, isLayoutRequested, isLayoutRtl, isLongClickable, isNestedScrollingEnabled, isPaddingRelative, isPivotSet, isPressed, isRootNamespace, isScrollbarFadingEnabled, isSelected, isShowingLayoutBounds, isShown, isSoundEffectsEnabled, isTemporarilyDetached, isTextAlignmentInherited, isTextAlignmentResolved, isTextDirectionInherited, isTextDirectionResolved, isVerticalFadingEdgeEnabled, isVerticalScrollBarEnabled, isVerticalScrollBarHidden, keyboardNavigationClusterSearch, mapRectFromViewToScreenCoords, measure, mergeDrawableStates, offsetLeftAndRight, offsetTopAndBottom, onCreateContextMenu, onDragEvent, onDraw, onDrawScrollBars, onFinishTemporaryDetach, onHoverChanged, onHoverEvent, onKeyShortcut, onResolveDrawables, onRtlPropertiesChanged, onScrollChanged, onStartTemporaryDetach, onVisibilityAggregated, onVisibilityChanged, onWindowVisibilityChanged, overScrollBy, performButtonActionOnTouchDown, performClick, performContextClick, performContextClick, performHapticFeedback, performHapticFeedback, performLongClick, performLongClick, playSoundEffect, pointInView, post, postDelayed, postInvalidate, postInvalidateDelayed, postInvalidateOnAnimation, postOnAnimation, postOnAnimationDelayed, refreshDrawableState, removeCallbacks, removeOnAttachStateChangeListener, removeOnLayoutChangeListener, requestFocus, requestFocus, requestRectangleOnScreen, requestRectangleOnScreen, requireViewById, resetPivot, resolveSize, resolveSizeAndState, scheduleDrawable, scrollBy, scrollTo, setActivated, setAlpha, setAnimationMatrix, setBackground, setBottom, setClickable, setContextClickable, setDuplicateParentStateEnabled, setElevation, setEnabled, setFocusable, setFocusedByDefault, setFocusedInCluster, setForeground, setForegroundGravity, setFrame, setHapticFeedbackEnabled, setHasTransientState, setHasTranslationTransientState, setHorizontalFadingEdgeEnabled, setHorizontalScrollBarEnabled, setHorizontalScrollbarThumbDrawable, setHorizontalScrollbarTrackDrawable, setHovered, setId, setIsRootNamespace, setKeyboardNavigationCluster, setLayoutDirection, setLayoutParams, setLeft, setLongClickable, setMeasuredDimension, setMinimumHeight, setMinimumWidth, setNestedScrollingEnabled, setNextClusterForwardId, setNextFocusDownId, setNextFocusForwardId, setNextFocusLeftId, setNextFocusRightId, setNextFocusUpId, setOnContextClickListener, setOnCreateContextMenuListener, setOnDragListener, setOnFocusChangeListener, setOnGenericMotionListener, setOnHoverListener, setOnKeyListener, setOnLongClickListener, setOnScrollChangeListener, setOnTouchListener, setOverScrollMode, setPadding, setPaddingRelative, setPivotX, setPivotY, setPressed, setRevealOnFocusHint, setRight, setRotation, setRotationX, setRotationY, setScaleX, setScaleY, setScrollBarDefaultDelayBeforeFade, setScrollBarFadeDuration, setScrollbarFadingEnabled, setScrollBarSize, setScrollBarStyle, setScrollIndicators, setScrollIndicators, setScrollX, setScrollY, setSelected, setSoundEffectsEnabled, setStateListAnimator, setTag, setTextAlignment, setTextDirection, setTooltipText, setTop, setTransitionAlpha, setTransitionName, setTransitionVisibility, setTranslationX, setTranslationY, setTranslationZ, setVerticalFadingEdgeEnabled, setVerticalScrollBarEnabled, setVerticalScrollbarThumbDrawable, setVerticalScrollbarTrackDrawable, setVisibility, setWillNotDraw, setX, setY, setZ, showContextMenu, sp, startActionMode, startActionMode, startDragAndDrop, startNestedScroll, stopNestedScroll, toGlobalMotionEvent, toLocalMotionEvent, toString, transformFromViewToWindowSpace, transformMatrixToGlobal, transformMatrixToLocal, unscheduleDrawable, unscheduleDrawable, willNotDraw`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

  ### Methods inherited from interface icyllis.modernui.view.ViewParent

  `canResolveLayoutDirection, canResolveTextAlignment, canResolveTextDirection, createContextMenu, getLayoutDirection, getParent, getTextAlignment, getTextDirection, isLayoutDirectionResolved, isLayoutRequested, isTextAlignmentResolved, isTextDirectionResolved, keyboardNavigationClusterSearch`

- ## Field Details

  - ### TRANSCRIPT_MODE_DISABLED

    public static final int TRANSCRIPT_MODE_DISABLED
    Disables the transcript mode.
    See Also:
      - `setTranscriptMode(int)`
      - Constant Field Values

  - ### TRANSCRIPT_MODE_NORMAL

    public static final int TRANSCRIPT_MODE_NORMAL
    The list will automatically scroll to the bottom when a data set change notification is received and only if the last item is already visible on screen.
    See Also:
      - `setTranscriptMode(int)`
      - Constant Field Values

  - ### TRANSCRIPT_MODE_ALWAYS_SCROLL

    public static final int TRANSCRIPT_MODE_ALWAYS_SCROLL
    The list will automatically scroll to the bottom, no matter what items are currently visible.
    See Also:
      - `setTranscriptMode(int)`
      - Constant Field Values

  - ### CHOICE_MODE_NONE

    public static final int CHOICE_MODE_NONE
    Normal list that does not indicate choices
    See Also:
      - Constant Field Values

  - ### CHOICE_MODE_SINGLE

    public static final int CHOICE_MODE_SINGLE
    The list allows up to one choice
    See Also:
      - Constant Field Values

  - ### CHOICE_MODE_MULTIPLE

    public static final int CHOICE_MODE_MULTIPLE
    The list allows multiple choices
    See Also:
      - Constant Field Values

  - ### CHOICE_MODE_MULTIPLE_MODAL

    public static final int CHOICE_MODE_MULTIPLE_MODAL
    The list allows multiple choices in a modal selection mode
    See Also:
      - Constant Field Values

- ## Constructor Details

  - ### AbsListView

    public AbsListView(Context context)

- ## Method Details

  - ### setAdapter

    public void setAdapter(@Nullable ListAdapter adapter)
    Sets the adapter that provides the data and the views to represent the data in this widget.
    Specified by:
      `setAdapter` in class `AdapterView<ListAdapter>`
    Parameters:
      `adapter` - The adapter to use to create this view's content.

  - ### getCheckedItemCount

    public int getCheckedItemCount()
    Returns the number of items currently selected. This will only be valid if the choice mode is not `CHOICE_MODE_NONE` (default).

    To determine the specific items that are currently selected, use one of the `getChecked*` methods.

    Returns:
      The number of items currently selected
    See Also:
      - `getCheckedItemPosition()`
      - `getCheckedItemPositions()`
      - `getCheckedItemIds()`

  - ### isItemChecked

    public boolean isItemChecked(int position)
    Returns the checked state of the specified position. The result is only valid if the choice mode has been set to `CHOICE_MODE_SINGLE` or `CHOICE_MODE_MULTIPLE`.
    Parameters:
      `position` - The item whose checked state to return
    Returns:
      The item's checked state or `false` if choice mode is invalid
    See Also:
      - `setChoiceMode(int)`

  - ### getCheckedItemPosition

    public int getCheckedItemPosition()
    Returns the currently checked item. The result is only valid if the choice mode has been set to `CHOICE_MODE_SINGLE`.
    Returns:
      The position of the currently checked item or `AdapterView.INVALID_POSITION` if nothing is selected
    See Also:
      - `setChoiceMode(int)`

  - ### getCheckedItemPositions

    public SparseBooleanArray getCheckedItemPositions()
    Returns the set of checked items in the list. The result is only valid if the choice mode has not been set to `CHOICE_MODE_NONE`.
    Returns:
      A SparseBooleanArray which will return true for each call to get(int position) where position is a checked position in the list and false otherwise, or `null` if the choice mode is set to `CHOICE_MODE_NONE`.

  - ### getCheckedItemIds

    public long[] getCheckedItemIds()
    Returns the set of checked items ids. The result is only valid if the choice mode has not been set to `CHOICE_MODE_NONE` and the adapter has stable IDs. (`Adapter.hasStableIds()` == `true`)
    Returns:
      A new array which contains the id of each checked item in the list.

  - ### clearChoices

    public void clearChoices()
    Clear any choices previously set

  - ### setItemChecked

    public void setItemChecked(int position, boolean value)
    Sets the checked state of the specified position. The is only valid if the choice mode has been set to `CHOICE_MODE_SINGLE` or `CHOICE_MODE_MULTIPLE`.
    Parameters:
      `position` - The item whose checked state is to be checked
      `value` - The new checked state for the item

  - ### performItemClick

    public boolean performItemClick(View view, int position, long id)
    Description copied from class: `AdapterView`
    Call the OnItemClickListener, if it is defined. Performs all normal actions associated with clicking: reporting accessibility event, playing a sound, etc.
    Overrides:
      `performItemClick` in class `AdapterView<ListAdapter>`
    Parameters:
      `view` - The view within the AdapterView that was clicked.
      `position` - The position of the view in the adapter.
      `id` - The row id of the item that was clicked.
    Returns:
      True if there was an assigned OnItemClickListener that was called, false otherwise is returned.

  - ### getChoiceMode

    public int getChoiceMode()
    Returns:
      The current choice mode
    See Also:
      - `setChoiceMode(int)`

  - ### setChoiceMode

    public void setChoiceMode(int choiceMode)
    Defines the choice behavior for the List. By default, Lists do not have any choice behavior (`CHOICE_MODE_NONE`). By setting the choiceMode to `CHOICE_MODE_SINGLE`, the List allows up to one item to be in a chosen state. By setting the choiceMode to `CHOICE_MODE_MULTIPLE`, the list allows any number of items to be chosen.
    Parameters:
      `choiceMode` - One of `CHOICE_MODE_NONE`, `CHOICE_MODE_SINGLE`, or `CHOICE_MODE_MULTIPLE`

  - ### setMultiChoiceModeListener

    public void setMultiChoiceModeListener(AbsListView.MultiChoiceModeListener listener)
    Set a `AbsListView.MultiChoiceModeListener` that will manage the lifecycle of the selection `ActionMode`. Only used when the choice mode is set to `CHOICE_MODE_MULTIPLE_MODAL`.
    Parameters:
      `listener` - Listener that will manage the selection mode
    See Also:
      - `setChoiceMode(int)`

  - ### setSmoothScrollbarEnabled

    public void setSmoothScrollbarEnabled(boolean enabled)
    When smooth scrollbar is enabled, the position and size of the scrollbar thumb is computed based on the number of visible pixels in the visible items. This however assumes that all list items have the same height. If you use a list in which items have different heights, the scrollbar will change appearance as the user scrolls through the list. To avoid this issue, you need to disable this property.

    When smooth scrollbar is disabled, the position and size of the scrollbar thumb is based solely on the number of items in the adapter and the position of the visible items inside the adapter. This provides a stable scrollbar as the user navigates through a list of items with varying heights.

    Parameters:
      `enabled` - Whether or not to enable smooth scrollbar.
    See Also:
      - `setSmoothScrollbarEnabled(boolean)`

  - ### isSmoothScrollbarEnabled

    public boolean isSmoothScrollbarEnabled()
    Returns the current state of the fast scroll feature.
    Returns:
      True if smooth scrollbar is enabled is enabled, false otherwise.
    See Also:
      - `setSmoothScrollbarEnabled(boolean)`

  - ### setOnScrollListener

    public void setOnScrollListener(@Nullable AbsListView.OnScrollListener l)
    Set the listener that will receive notifications every time the list scrolls.
    Parameters:
      `l` - the scroll listener

  - ### getFocusedRect

    public void getFocusedRect(@NonNull Rect r)
    Description copied from class: `View`
    When a view has focus and the user navigates away from it, the next view is searched for starting from the rectangle filled in by this method.

    By default, the rectangle is the `View.getDrawingRect(Rect)`) of the view. However, if your view maintains some idea of internal selection, such as a cursor, or a selected row or column, you should override this method and fill in a more specific rectangle.

    Overrides:
      `getFocusedRect` in class `View`
    Parameters:
      `r` - The rectangle to fill in, in this view's coordinates.

  - ### isStackFromBottom

    public boolean isStackFromBottom()
    Indicates whether the content of this view is pinned to, or stacked from, the bottom edge.
    Returns:
      true if the content is stacked from the bottom edge, false otherwise

  - ### setStackFromBottom

    public void setStackFromBottom(boolean stackFromBottom)
    When stack from bottom is set to true, the list fills its content starting from the bottom of the view.
    Parameters:
      `stackFromBottom` - true to pin the view's content to the bottom edge, false to pin the view's content to the top edge

  - ### onFocusChanged

    protected void onFocusChanged(boolean gainFocus, int direction, @Nullable Rect previouslyFocusedRect)
    Description copied from class: `View`
    Called by the view system when the focus state of this view changes. When the focus change event is caused by directional navigation, direction and previouslyFocusedRect provide insight into where the focus is coming from. When overriding, be sure to call up through to the super class so that the standard focus handling will occur.
    Overrides:
      `onFocusChanged` in class `View`
    Parameters:
      `gainFocus` - True if the View has focus; false otherwise.
      `direction` - The direction focus has moved when requestFocus() is called to give this view focus. Values are `View.FOCUS_UP`, `View.FOCUS_DOWN`, `View.FOCUS_LEFT`, `View.FOCUS_RIGHT`, `View.FOCUS_FORWARD`, or `View.FOCUS_BACKWARD`. It may not always apply, in which case use the default.
      `previouslyFocusedRect` - The rectangle, in this view's coordinate system, of the previously focused view. If applicable, this will be passed in as finer grained information about where the focus is coming from (in addition to direction). Will be `null` otherwise.

  - ### requestLayout

    public void requestLayout()
    Description copied from class: `View`
    Call this when something has changed which has invalidated the layout of this view. This will schedule a layout pass of the view tree. This should not be called while the view hierarchy is currently in a layout pass (`View.isInLayout()`. If layout is happening, the request may be honored at the end of the current layout pass (and then layout will run again) or after the current frame is drawn and the next layout occurs.

    Subclasses which override this method should call the superclass method to handle possible request-during-layout errors correctly.

    Specified by:
      `requestLayout` in interface `ViewParent`
    Overrides:
      `requestLayout` in class `View`

  - ### computeVerticalScrollExtent

    protected int computeVerticalScrollExtent()
    Description copied from class: `View`

    Compute the vertical extent of the vertical scrollbar's thumb within the vertical range. This value is used to compute the length of the thumb within the scrollbar's track.

    The range is expressed in arbitrary units that must be the same as the units used by `View.computeVerticalScrollRange()` and `View.computeVerticalScrollOffset()`.

    The default extent is the drawing height of this view.

    Overrides:
      `computeVerticalScrollExtent` in class `View`
    Returns:
      the vertical extent of the scrollbar's thumb
    See Also:
      - `View.computeVerticalScrollRange()`
      - `View.computeVerticalScrollOffset()`

  - ### computeVerticalScrollOffset

    protected int computeVerticalScrollOffset()
    Description copied from class: `View`

    Compute the vertical offset of the vertical scrollbar's thumb within the horizontal range. This value is used to compute the position of the thumb within the scrollbar's track.

    The range is expressed in arbitrary units that must be the same as the units used by `View.computeVerticalScrollRange()` and `View.computeVerticalScrollExtent()`.

    The default offset is the scroll offset of this view.

    Overrides:
      `computeVerticalScrollOffset` in class `View`
    Returns:
      the vertical offset of the scrollbar's thumb
    See Also:
      - `View.computeVerticalScrollRange()`
      - `View.computeVerticalScrollExtent()`

  - ### computeVerticalScrollRange

    protected int computeVerticalScrollRange()
    Description copied from class: `View`

    Compute the vertical range that the vertical scrollbar represents.

    The range is expressed in arbitrary units that must be the same as the units used by `View.computeVerticalScrollExtent()` and `View.computeVerticalScrollOffset()`.

    Overrides:
      `computeVerticalScrollRange` in class `View`
    Returns:
      the total vertical range represented by the vertical scrollbar

      The default range is the drawing height of this view.

    See Also:
      - `View.computeVerticalScrollExtent()`
      - `View.computeVerticalScrollOffset()`

  - ### onMeasure

    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec)
    Description copied from class: `View`
    Measure the view and its content to determine the measured width and the measured height. This method is invoked by `View.measure(int, int)` and should be overridden by subclasses to provide accurate and efficient measurement of their contents.

    CONTRACT: When overriding this method, you must call `View.setMeasuredDimension(int, int)` to store the measured width and height of this view. Failure to do so will trigger an `IllegalStateException`, thrown by `View.measure(int, int)`. Calling super.onMeasure() is a valid use.

    The base class implementation of measure defaults to the background size, unless a larger size is allowed by the MeasureSpec. Subclasses should override the base one to provide better measurements of their content.

    Overrides:
      `onMeasure` in class `View`
    Parameters:
      `widthMeasureSpec` - width measure specification imposed by the parent `MeasureSpec`
      `heightMeasureSpec` - height measure specification imposed by the parent `MeasureSpec`

  - ### onLayout

    protected void onLayout(boolean changed, int l, int t, int r, int b)
    Subclasses should NOT override this method but `layoutChildren()` instead.
    Overrides:
      `onLayout` in class `AdapterView<ListAdapter>`
    Parameters:
      `changed` - This is a new size or position for this view
      `l` - Left position, relative to parent
      `t` - Top position, relative to parent
      `r` - Right position, relative to parent
      `b` - Bottom position, relative to parent

  - ### layoutChildren

    protected void layoutChildren()
    Subclasses must override this method to layout their children.

  - ### getSelectedView

    public View getSelectedView()
    Specified by:
      `getSelectedView` in class `AdapterView<ListAdapter>`
    Returns:
      The view corresponding to the currently selected item, or null if nothing is selected

  - ### getListPaddingTop

    public int getListPaddingTop()
    List padding is the maximum of the normal view's padding and the padding of the selector.
    Returns:
      The top list padding.
    See Also:
      - `View.getPaddingTop()`
      - `getSelector()`

  - ### getListPaddingBottom

    public int getListPaddingBottom()
    List padding is the maximum of the normal view's padding and the padding of the selector.
    Returns:
      The bottom list padding.
    See Also:
      - `View.getPaddingBottom()`
      - `getSelector()`

  - ### getListPaddingLeft

    public int getListPaddingLeft()
    List padding is the maximum of the normal view's padding and the padding of the selector.
    Returns:
      The left list padding.
    See Also:
      - `View.getPaddingLeft()`
      - `getSelector()`

  - ### getListPaddingRight

    public int getListPaddingRight()
    List padding is the maximum of the normal view's padding and the padding of the selector.
    Returns:
      The right list padding.
    See Also:
      - `View.getPaddingRight()`
      - `getSelector()`

  - ### dispatchDraw

    protected void dispatchDraw(@NonNull Canvas canvas)
    Description copied from class: `View`
    Draw the child views.
    Overrides:
      `dispatchDraw` in class `ViewGroup`
    Parameters:
      `canvas` - the canvas to draw content

  - ### internalSetPadding

    protected void internalSetPadding(int left, int top, int right, int bottom)
    Overrides:
      `internalSetPadding` in class `ViewGroup`

  - ### onSizeChanged

    protected void onSizeChanged(int w, int h, int oldw, int oldh)
    Description copied from class: `View`
    Called when width or height changed
    Overrides:
      `onSizeChanged` in class `View`
    Parameters:
      `w` - new width
      `h` - new height
      `oldw` - previous width
      `oldh` - previous height

  - ### shouldDrawSelector

    @Internal public final boolean shouldDrawSelector()

  - ### setDrawSelectorOnTop

    public void setDrawSelectorOnTop(boolean onTop)
    Controls whether the selection highlight drawable should be drawn on top of the item or behind it.
    Parameters:
      `onTop` - If true, the selector will be drawn on the item it is highlighting. The default is false.

  - ### isDrawSelectorOnTop

    public boolean isDrawSelectorOnTop()
    Returns whether the selection highlight drawable should be drawn on top of the item or behind it.
    Returns:
      true if selector is drawn on top, false otherwise

  - ### setSelector

    public void setSelector(Drawable sel)

  - ### getSelector

    public Drawable getSelector()
    Returns the selector `Drawable` that is used to draw the selection in the list.
    Returns:
      the drawable used to display the selector

  - ### setScrollIndicators

    public void setScrollIndicators(View up, View down)

  - ### drawableStateChanged

    protected void drawableStateChanged()
    Description copied from class: `View`
    This function is called whenever the state of the view changes in such a way that it impacts the state of drawables being shown.

    If the View has a StateListAnimator, it will also be called to run necessary state change animations.

    Be sure to call through to the superclass when overriding this function.

    Overrides:
      `drawableStateChanged` in class `ViewGroup`
    See Also:
      - `Drawable.setState(int[])`

  - ### verifyDrawable

    public boolean verifyDrawable(@NonNull Drawable dr)
    Description copied from class: `View`
    If your view subclass is displaying its own Drawable objects, it should override this function and return true for any Drawable it is displaying. This allows animations for those drawables to be scheduled.

    Be sure to call through to the super class when overriding this function.

    Overrides:
      `verifyDrawable` in class `View`
    Parameters:
      `dr` - The Drawable to verify. Return true if it is one you are displaying, else return the result of calling through to the super class.
    Returns:
      boolean If true then the Drawable is being displayed in the view; else false and it is not allowed to animate.
    See Also:
      - `View.unscheduleDrawable(Drawable)`
      - `View.drawableStateChanged()`

  - ### onAttachedToWindow

    protected void onAttachedToWindow()
    Description copied from class: `View`
    This is called when the view is attached to a window. At this point it has a Surface and will start drawing. Note that this function is guaranteed to be called before `View.onDraw(Canvas)`, however it may be called any time before the first onDraw -- including before or after `View.onMeasure(int, int)`.
    Overrides:
      `onAttachedToWindow` in class `View`
    See Also:
      - `View.onDetachedFromWindow()`

  - ### onDetachedFromWindow

    protected void onDetachedFromWindow()
    Description copied from class: `View`
    This is called when the view is detached from a window. At this point it no longer has a surface for drawing.
    Overrides:
      `onDetachedFromWindow` in class `AdapterView<ListAdapter>`
    See Also:
      - `View.onAttachedToWindow()`

  - ### onWindowFocusChanged

    public void onWindowFocusChanged(boolean hasWindowFocus)
    Description copied from class: `View`
    Called when the window containing this view gains or loses focus. Note that this is separate from view focus: to receive key events, both your view and its window must have focus. If a window is displayed on top of yours that takes input focus, then your own window will lose focus but the view focus will remain unchanged.
    Overrides:
      `onWindowFocusChanged` in class `View`
    Parameters:
      `hasWindowFocus` - True if the window containing this view now has focus, false otherwise.

  - ### onCancelPendingInputEvents

    public void onCancelPendingInputEvents()
    Description copied from class: `View`
    Called as the result of a call to `View.cancelPendingInputEvents()` on this view or a parent view.

    This method is responsible for removing any pending high-level input events that were posted to the event queue to run later. Custom view classes that post their own deferred high-level events via `View.post(Runnable)`, `View.postDelayed(Runnable, long)` or `Handler` should override this method, call `super.onCancelPendingInputEvents()` and remove those callbacks as appropriate.

    Overrides:
      `onCancelPendingInputEvents` in class `View`

  - ### getContextMenuInfo

    protected ContextMenu.ContextMenuInfo getContextMenuInfo()
    Description copied from class: `View`
    Views should implement this if they have extra information to associate with the context menu. The return result is supplied as a parameter to the `View.OnCreateContextMenuListener.onCreateContextMenu(ContextMenu, View, ContextMenuInfo)` callback.
    Overrides:
      `getContextMenuInfo` in class `View`
    Returns:
      Extra information about the item for which the context menu should be shown. This information will vary across different subclasses of View.

  - ### showContextMenu

    public boolean showContextMenu(float x, float y)
    Description copied from class: `View`
    Shows the context menu for this view anchored to the specified view-relative coordinate.
    Overrides:
      `showContextMenu` in class `View`
    Parameters:
      `x` - the X coordinate in pixels relative to the view to which the menu should be anchored, or `Float.NaN` to disable anchoring
      `y` - the Y coordinate in pixels relative to the view to which the menu should be anchored, or `Float.NaN` to disable anchoring
    Returns:
      `true` if the context menu was shown, `false` otherwise

  - ### showContextMenuForChild

    public boolean showContextMenuForChild(View originalView, float x, float y)
    Description copied from interface: `ViewParent`
    Shows the context menu for the specified view or its ancestors anchored to the specified view-relative coordinate.

    In most cases, a subclass does not need to override this. However, if the subclass is added directly to the window manager (for example, `ViewManager.addView(View, ViewGroup.LayoutParams)`) then it should override this and show the context menu.

    Specified by:
      `showContextMenuForChild` in interface `ViewParent`
    Overrides:
      `showContextMenuForChild` in class `ViewGroup`
    Parameters:
      `originalView` - the source view where the context menu was first invoked
      `x` - the X coordinate in pixels relative to the original view to which the menu should be anchored, or `Float.NaN` to disable anchoring
      `y` - the Y coordinate in pixels relative to the original view to which the menu should be anchored, or `Float.NaN` to disable anchoring
    Returns:
      `true` if the context menu was shown, `false` otherwise

  - ### onKeyDown

    public boolean onKeyDown(int keyCode, @NonNull KeyEvent event)
    Description copied from class: `View`
    Default implementation: perform press of the view when `KeyEvent.KEY_ENTER`, `KeyEvent.KEY_KP_ENTER` or `KeyEvent.KEY_SPACE` is released, if the view is enabled and clickable.
    Overrides:
      `onKeyDown` in class `View`
    Parameters:
      `keyCode` - a key code that represents the button pressed, from `KeyEvent`
      `event` - the KeyEvent object that defines the button action

  - ### onKeyUp

    public boolean onKeyUp(int keyCode, @NonNull KeyEvent event)
    Description copied from class: `View`
    Default implementation: perform clicking of the view when `KeyEvent.KEY_ENTER`, `KeyEvent.KEY_KP_ENTER` or `KeyEvent.KEY_SPACE` is released.
    Overrides:
      `onKeyUp` in class `View`
    Parameters:
      `keyCode` - A key code that represents the button pressed, from `KeyEvent`.
      `event` - The KeyEvent object that defines the button action.

  - ### dispatchSetPressed

    protected void dispatchSetPressed(boolean pressed)
    Description copied from class: `View`
    Dispatch setPressed to all of this View's children.
    Overrides:
      `dispatchSetPressed` in class `ViewGroup`
    Parameters:
      `pressed` - The new pressed state
    See Also:
      - `View.setPressed(boolean)`

  - ### dispatchDrawableHotspotChanged

    public void dispatchDrawableHotspotChanged(float x, float y)
    Description copied from class: `ViewGroup`
    Dispatches drawable hotspot changes to child views that meet at least one of the following criteria:
    - Returns `false` from both `View.isClickable()` and `View.isLongClickable()`
    - Requests duplication of parent state via `View.setDuplicateParentStateEnabled(boolean)`
    Overrides:
      `dispatchDrawableHotspotChanged` in class `ViewGroup`
    Parameters:
      `x` - hotspot x coordinate
      `y` - hotspot y coordinate
    See Also:
      - `View.drawableHotspotChanged(float, float)`

  - ### pointToPosition

    public int pointToPosition(int x, int y)
    Maps a point to a position in the list.
    Parameters:
      `x` - X in local coordinate
      `y` - Y in local coordinate
    Returns:
      The position of the item which contains the specified point, or `AdapterView.INVALID_POSITION` if the point does not intersect an item.

  - ### pointToRowId

    public long pointToRowId(int x, int y)
    Maps a point to a the rowId of the item which intersects that point.
    Parameters:
      `x` - X in local coordinate
      `y` - Y in local coordinate
    Returns:
      The rowId of the item which contains the specified point, or `AdapterView.INVALID_ROW_ID` if the point does not intersect an item.

  - ### onTouchModeChanged

    public void onTouchModeChanged(boolean isInTouchMode)

  - ### onTouchEvent

    public boolean onTouchEvent(@NonNull MotionEvent ev)
    Description copied from class: `View`
    Implement this method to handle touch screen motion events.

    If this method is used to detect click actions, it is recommended that the actions be performed by implementing and calling `View.performClick()`. This will ensure consistent system behavior.

    Overrides:
      `onTouchEvent` in class `View`
    Parameters:
      `ev` - the touch event
    Returns:
      `true` if the event was handled by the view, `false` otherwise

  - ### onOverScrolled

    protected void onOverScrolled(int scrollX, int scrollY, boolean clampedX, boolean clampedY)
    Description copied from class: `View`
    Called by `View.overScrollBy(int, int, int, int, int, int, int, int, boolean)` to respond to the results of an over-scroll operation.
    Overrides:
      `onOverScrolled` in class `View`
    Parameters:
      `scrollX` - New X scroll value in pixels
      `scrollY` - New Y scroll value in pixels
      `clampedX` - True if scrollX was clamped to an over-scroll boundary
      `clampedY` - True if scrollY was clamped to an over-scroll boundary

  - ### onGenericMotionEvent

    public boolean onGenericMotionEvent(@NonNull MotionEvent event)
    Description copied from class: `View`
    Implement this method to handle generic motion events.

    Implementations of this method should check if this view ENABLED and CLICKABLE.

    Overrides:
      `onGenericMotionEvent` in class `View`
    Parameters:
      `event` - the generic motion event being processed.
    Returns:
      `true` if the event was consumed by the view, `false` otherwise

  - ### fling

    public void fling(int velocityY)
    Initiate a fling with the given velocity.

    Applications can use this method to manually initiate a fling as if the user initiated it via touch interaction.

    Parameters:
      `velocityY` - Vertical velocity in pixels per second. Note that this is velocity of content, not velocity of a touch that initiated the fling.

  - ### onStartNestedScroll

    public boolean onStartNestedScroll(@NonNull View child, @NonNull View target, int axes, int type)
    Description copied from interface: `ViewParent`
    React to a descendant view initiating a nestable scroll operation, claiming the nested scroll operation if appropriate.

    This method will be called in response to a descendant view invoking `View.startNestedScroll(int, int)`. Each parent up the view hierarchy will be given an opportunity to respond and claim the nested scrolling operation by returning `true`.

    This method may be overridden by ViewParent implementations to indicate when the view is willing to support a nested scrolling operation that is about to begin. If it returns true, this ViewParent will become the target view's nested scrolling parent for the duration of the scroll operation in progress. When the nested scroll is finished this ViewParent will receive a call to `ViewParent.onStopNestedScroll(View, int)`.

    Specified by:
      `onStartNestedScroll` in interface `ViewParent`
    Overrides:
      `onStartNestedScroll` in class `ViewGroup`
    Parameters:
      `child` - Direct child of this ViewParent containing target
      `target` - View that initiated the nested scroll
      `axes` - Flags consisting of `View.SCROLL_AXIS_HORIZONTAL`, `View.SCROLL_AXIS_VERTICAL` or both
      `type` - the type of input which cause this scroll event
    Returns:
      true if this ViewParent accepts the nested scroll operation

  - ### onNestedScrollAccepted

    public void onNestedScrollAccepted(@NonNull View child, @NonNull View target, int axes, int type)
    Description copied from interface: `ViewParent`
    React to the successful claiming of a nested scroll operation.

    This method will be called after `onStartNestedScroll` returns true. It offers an opportunity for the view and its superclasses to perform initial configuration for the nested scroll. Implementations of this method should always call their superclasses' implementation of this method if one is present.

    Specified by:
      `onNestedScrollAccepted` in interface `ViewParent`
    Overrides:
      `onNestedScrollAccepted` in class `ViewGroup`
    Parameters:
      `child` - Direct child of this ViewParent containing target
      `target` - View that initiated the nested scroll
      `axes` - Flags consisting of `View.SCROLL_AXIS_HORIZONTAL`, `View.SCROLL_AXIS_VERTICAL` or both
      `type` - the type of input which cause this scroll event
    See Also:
      - `ViewParent.onStartNestedScroll(View, View, int, int)`
      - `ViewParent.onStopNestedScroll(View, int)`

  - ### onNestedScroll

    public void onNestedScroll(@NonNull View target, int dxConsumed, int dyConsumed, int dxUnconsumed, int dyUnconsumed, int type, @NonNull int[] consumed)
    Description copied from interface: `ViewParent`
    React to a nested scroll in progress.

    This method will be called when the ViewParent's current nested scrolling child view dispatches a nested scroll event. To receive calls to this method the ViewParent must have previously returned `true` for a call to `ViewParent.onStartNestedScroll(View, View, int, int)`.

    Both the consumed and unconsumed portions of the scroll distance are reported to the ViewParent. An implementation may choose to use the consumed portion to match or chase scroll position of multiple child elements, for example. The unconsumed portion may be used to allow continuous dragging of multiple scrolling or draggable elements, such as scrolling a list within a vertical drawer where the drawer begins dragging once the edge of inner scrolling content is reached.

    This method is called when a nested scrolling child invokes `View.dispatchNestedScroll(int, int, int, int, int[], int, int[])`} or one of methods it overloads.

    An implementation must report how many pixels of the x and y scroll distances were consumed by this nested scrolling parent by adding the consumed distances to the `consumed` parameter. `consumed` should also be passed up to it's nested scrolling parent so that the parent may also add any scroll distance it consumes. Index 0 corresponds to dx and index 1 corresponds to dy.

    Specified by:
      `onNestedScroll` in interface `ViewParent`
    Overrides:
      `onNestedScroll` in class `ViewGroup`
    Parameters:
      `target` - The descendant view controlling the nested scroll
      `dxConsumed` - Horizontal scroll distance in pixels already consumed by target
      `dyConsumed` - Vertical scroll distance in pixels already consumed by target
      `dxUnconsumed` - Horizontal scroll distance in pixels not consumed by target
      `dyUnconsumed` - Vertical scroll distance in pixels not consumed by target
      `type` - the type of input which cause this scroll event
      `consumed` - Output. Upon this method returning, will contain the scroll distances consumed by this nested scrolling parent and the scroll distances consumed by any other parent up the view hierarchy
    See Also:
      - `View.dispatchNestedScroll(int, int, int, int, int[], int, int[])`

  - ### onNestedFling

    public boolean onNestedFling(@NonNull View target, float velocityX, float velocityY, boolean consumed)
    Description copied from interface: `ViewParent`
    Request a fling from a nested scroll.

    This method signifies that a nested scrolling child has detected suitable conditions for a fling. Generally this means that a touch scroll has ended with a `velocity` in the direction of scrolling that meets or exceeds the `minimum fling velocity` along a scrollable axis.

    If a nested scrolling child view would normally fling but it is at the edge of its own content, it can use this method to delegate the fling to its nested scrolling parent instead. The parent may optionally consume the fling or observe a child fling.

    Specified by:
      `onNestedFling` in interface `ViewParent`
    Overrides:
      `onNestedFling` in class `ViewGroup`
    Parameters:
      `target` - View that initiated the nested scroll
      `velocityX` - Horizontal velocity in pixels per second
      `velocityY` - Vertical velocity in pixels per second
      `consumed` - true if the child consumed the fling, false otherwise
    Returns:
      true if this parent consumed or otherwise reacted to the fling

  - ### onDrawForeground

    public void onDrawForeground(@NonNull Canvas canvas)
    Description copied from class: `View`
    Draw any foreground content for this view.

    Foreground content may consist of scroll bars, a `foreground` drawable or other view-specific decorations. The foreground is drawn on top of the primary view content.

    Overrides:
      `onDrawForeground` in class `View`
    Parameters:
      `canvas` - the canvas to draw content

  - ### requestDisallowInterceptTouchEvent

    public void requestDisallowInterceptTouchEvent(boolean disallowIntercept)
    Description copied from interface: `ViewParent`
    Called when a child does not want this parent and its ancestors to intercept touch events with `ViewGroup.onInterceptTouchEvent(MotionEvent)`.

    This parent should pass this call onto its parents. This parent must obey this request for the duration of the touch (that is, only clear the flag after this parent has received an up or a cancel.

    Specified by:
      `requestDisallowInterceptTouchEvent` in interface `ViewParent`
    Overrides:
      `requestDisallowInterceptTouchEvent` in class `ViewGroup`
    Parameters:
      `disallowIntercept` - True if the child does not want the parent to intercept touch events.

  - ### onInterceptTouchEvent

    public boolean onInterceptTouchEvent(@NonNull MotionEvent ev)
    Description copied from class: `ViewGroup`
    Implement this method to intercept all touch screen motion events. This allows you to watch events as they are dispatched to your children, and take ownership of the current gesture at any point.

    Using this function takes some care, as it has a fairly complicated interaction with `View.onTouchEvent(MotionEvent)`, and using it requires implementing that method as well as this one in the correct way. Events will be received in the following order:

    1. You will receive the down event here.
    2. The down event will be handled either by a child of this view group, or given to your own onTouchEvent() method to handle; this means you should implement onTouchEvent() to return true, so you will continue to see the rest of the gesture (instead of looking for a parent view to handle it). Also, by returning true from onTouchEvent(), you will not receive any following events in onInterceptTouchEvent() and all touch processing must happen in onTouchEvent() like normal.
    3. For as long as you return false from this function, each following event (up to and including the final up) will be delivered first here and then to the target's onTouchEvent().
    4. If you return true from here, you will not receive any following events: the target view will receive the same event but with the action `MotionEvent.ACTION_CANCEL`, and all further events will be delivered to your onTouchEvent() method and no longer appear here.
    Overrides:
      `onInterceptTouchEvent` in class `ViewGroup`
    Parameters:
      `ev` - The motion event being dispatched down the hierarchy.
    Returns:
      Return true to steal motion events from the children and have them dispatched to this ViewGroup through onTouchEvent(). The current target will receive an ACTION_CANCEL event, and no further messages will be delivered here.

  - ### addTouchables

    public void addTouchables(@NonNull ArrayList<View> views)
    Add any touchable views that are descendants of this view (possibly including this view if it is touchable itself) to views.
    Overrides:
      `addTouchables` in class `ViewGroup`
    Parameters:
      `views` - Touchable views found so far

  - ### setFriction

    public void setFriction(float friction)
    The amount of friction applied to flings. The default value is
    invalid reference

        ViewConfiguration#getScrollFriction

    .

  - ### setVelocityScale

    public void setVelocityScale(float scale)
    Sets a scale factor for the fling velocity. The initial scale factor is 1.0.
    Parameters:
      `scale` - The scale factor to multiply the velocity by.

  - ### smoothScrollToPosition

    public void smoothScrollToPosition(int position)
    Smoothly scroll to the specified adapter position. The view will scroll such that the indicated position is displayed.
    Parameters:
      `position` - Scroll to this adapter position.

  - ### smoothScrollToPositionFromTop

    public void smoothScrollToPositionFromTop(int position, int offset, int duration)
    Smoothly scroll to the specified adapter position. The view will scroll such that the indicated position is displayed `offset` pixels below the top edge of the view. If this is impossible, (e.g. the offset would scroll the first or last item beyond the boundaries of the list) it will get as close as possible. The scroll will take `duration` milliseconds to complete.
    Parameters:
      `position` - Position to scroll to
      `offset` - Desired distance in pixels of `position` from the top of the view when scrolling is finished
      `duration` - Number of milliseconds to use for the scroll

  - ### smoothScrollToPositionFromTop

    public void smoothScrollToPositionFromTop(int position, int offset)
    Smoothly scroll to the specified adapter position. The view will scroll such that the indicated position is displayed `offset` pixels below the top edge of the view. If this is impossible, (e.g. the offset would scroll the first or last item beyond the boundaries of the list) it will get as close as possible.
    Parameters:
      `position` - Position to scroll to
      `offset` - Desired distance in pixels of `position` from the top of the view when scrolling is finished

  - ### smoothScrollToPosition

    public void smoothScrollToPosition(int position, int boundPosition)
    Smoothly scroll to the specified adapter position. The view will scroll such that the indicated position is displayed, but it will stop early if scrolling further would scroll boundPosition out of view.
    Parameters:
      `position` - Scroll to this adapter position.
      `boundPosition` - Do not scroll if it would move this adapter position out of view.

  - ### smoothScrollBy

    public void smoothScrollBy(int distance, int duration)
    Smoothly scroll by distance pixels over duration milliseconds.
    Parameters:
      `distance` - Distance to scroll in pixels.
      `duration` - Duration of the scroll animation in milliseconds.

  - ### scrollListBy

    public void scrollListBy(int y)
    Scrolls the list items within the view by a specified number of pixels.

    The actual amount of scroll is capped by the list content viewport height which is the list height minus top and bottom paddings minus one pixel.

    Parameters:
      `y` - the amount of pixels to scroll by vertically
    See Also:
      - `canScrollList(int)`

  - ### canScrollList

    public boolean canScrollList(int direction)
    Check if the items in the list can be scrolled in a certain direction.
    Parameters:
      `direction` - Negative to check scrolling up, positive to check scrolling down.
    Returns:
      true if the list can be scrolled in the specified direction, false otherwise.
    See Also:
      - `scrollListBy(int)`

  - ### invalidateViews

    public void invalidateViews()
    Causes all the views to be rebuilt and redrawn.

  - ### handleDataChanged

    protected void handleDataChanged()

  - ### onFilterComplete

    public void onFilterComplete(int count)
    Description copied from interface: `Filter.FilterListener`

    Notifies the end of a filtering operation.

    Specified by:
      `onFilterComplete` in interface `Filter.FilterListener`
    Parameters:
      `count` - the number of values computed by the filter

  - ### generateDefaultLayoutParams

    @NonNull protected ViewGroup.LayoutParams generateDefaultLayoutParams()
    Description copied from class: `ViewGroup`
    Returns a set of default layout parameters. These parameters are requested when the View passed to `ViewGroup.addView(View)` has no layout parameters already set. If null is returned, an exception is thrown from addView.
    Overrides:
      `generateDefaultLayoutParams` in class `ViewGroup`
    Returns:
      a set of default layout parameters

  - ### generateLayoutParams

    @NonNull protected ViewGroup.LayoutParams generateLayoutParams(@NonNull ViewGroup.LayoutParams p)
    Description copied from class: `ViewGroup`
    Returns a safe set of layout parameters based on the supplied layout params. When a ViewGroup is passed a View whose layout params do not pass the test of `ViewGroup.checkLayoutParams(LayoutParams)`, this method is invoked. This method should return a new set of layout params suitable for this ViewGroup, possibly by copying the appropriate attributes from the specified set of layout params.
    Overrides:
      `generateLayoutParams` in class `ViewGroup`
    Parameters:
      `p` - The layout parameters to convert into a suitable set of layout parameters for this ViewGroup.
    Returns:
      an instance of `ViewGroup.LayoutParams` or one of its descendants

  - ### checkLayoutParams

    protected boolean checkLayoutParams(ViewGroup.LayoutParams p)
    Description copied from class: `ViewGroup`
    Check whether given params fit to this view group.

    See also `ViewGroup.generateLayoutParams(LayoutParams)` See also `ViewGroup.generateDefaultLayoutParams()`

    Overrides:
      `checkLayoutParams` in class `ViewGroup`
    Parameters:
      `p` - layout params to check
    Returns:
      if params matched to this view group

  - ### setTranscriptMode

    public void setTranscriptMode(int mode)
    Puts the list or grid into transcript mode. In this mode the list or grid will always scroll to the bottom to show new items.
    Parameters:
      `mode` - the transcript mode to set
    See Also:
      - `TRANSCRIPT_MODE_DISABLED`
      - `TRANSCRIPT_MODE_NORMAL`
      - `TRANSCRIPT_MODE_ALWAYS_SCROLL`

  - ### getTranscriptMode

    public int getTranscriptMode()
    Returns the current transcript mode.
    Returns:
      `TRANSCRIPT_MODE_DISABLED`, `TRANSCRIPT_MODE_NORMAL` or `TRANSCRIPT_MODE_ALWAYS_SCROLL`

  - ### reclaimViews

    public void reclaimViews(@NonNull List<View> views)
    Move all views (excluding headers and footers) held by this AbsListView into the supplied List. This includes views displayed on the screen as well as views stored in AbsListView's internal view recycler.
    Parameters:
      `views` - A list into which to put the reclaimed views

  - ### setEdgeEffectColor

    public void setEdgeEffectColor(int color)
    Sets the edge effect color for both top and bottom edge effects.
    Parameters:
      `color` - The color for the edge effects.
    See Also:
      - `setTopEdgeEffectColor(int)`
      - `setBottomEdgeEffectColor(int)`
      - `getTopEdgeEffectColor()`
      - `getBottomEdgeEffectColor()`

  - ### setBottomEdgeEffectColor

    public void setBottomEdgeEffectColor(int color)
    Sets the bottom edge effect color.
    Parameters:
      `color` - The color for the bottom edge effect.
    See Also:
      - `setTopEdgeEffectColor(int)`
      - `setEdgeEffectColor(int)`
      - `getTopEdgeEffectColor()`
      - `getBottomEdgeEffectColor()`

  - ### setTopEdgeEffectColor

    public void setTopEdgeEffectColor(int color)
    Sets the top edge effect color.
    Parameters:
      `color` - The color for the top edge effect.
    See Also:
      - `setBottomEdgeEffectColor(int)`
      - `setEdgeEffectColor(int)`
      - `getTopEdgeEffectColor()`
      - `getBottomEdgeEffectColor()`

  - ### getTopEdgeEffectColor

    public int getTopEdgeEffectColor()
    Returns the top edge effect color.
    Returns:
      The top edge effect color.
    See Also:
      - `setEdgeEffectColor(int)`
      - `setTopEdgeEffectColor(int)`
      - `setBottomEdgeEffectColor(int)`
      - `getBottomEdgeEffectColor()`

  - ### getBottomEdgeEffectColor

    public int getBottomEdgeEffectColor()
    Returns the bottom edge effect color.
    Returns:
      The bottom edge effect color.
    See Also:
      - `setEdgeEffectColor(int)`
      - `setTopEdgeEffectColor(int)`
      - `setBottomEdgeEffectColor(int)`
      - `getTopEdgeEffectColor()`

  - ### setRecyclerListener

    public void setRecyclerListener(@Nullable AbsListView.RecyclerListener listener)
    Sets the recycler listener to be notified whenever a View is set aside in the recycler for later reuse. This listener can be used to free resources associated to the View.
    Parameters:
      `listener` - The recycler listener to be notified of views set aside in the recycler.
    See Also:
      - `AbsListView.RecyclerListener`

  - ### setSelectionFromTop

    public void setSelectionFromTop(int position, int y)
    Sets the selected item and positions the selection y pixels from the top edge of the ListView. (If in touch mode, the item will not be selected but it will still be positioned appropriately.)
    Parameters:
      `position` - Index (starting at 0) of the data item to be selected.
      `y` - The distance from the top edge of the ListView (plus padding) that the item will be positioned.