Package icyllis.modernui.widget

# Class CompoundButton

java.lang.Object
icyllis.modernui.view.View
icyllis.modernui.widget.TextView
icyllis.modernui.widget.Button
icyllis.modernui.widget.CompoundButton

All Implemented Interfaces:
  `Drawable.Callback`, `ViewTreeObserver.OnPreDrawListener`, `Checkable`

Direct Known Subclasses:
  `CheckBox`, `RadioButton`, `SwitchButton`

public abstract class CompoundButton extends Button implements Checkable
A button with two states, checked and unchecked. When the button is pressed or clicked to perform an action, the state changes automatically.

Note that all events are handled on UI thread, this means your listener code must execute quickly to avoid delaying your UI response to further actions.

- ## Nested Class Summary

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

  `TextView.BufferType`

  ## 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`

  ## Nested classes/interfaces inherited from interface icyllis.modernui.widget.Checkable

  `Checkable.OnCheckedChangeListener`

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final int[]`
  `CHECKED_STATE_SET`

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

  `UNKNOWN_BORING`

  ### 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
  `CompoundButton(Context context)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `drawableHotspotChanged(float x, float y)`
  This function is called whenever the view hotspot changes and needs to be propagated to drawables or child views managed by the view.
  `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.
  `Drawable`
  `getButtonDrawable()`
  `final ColorStateList`
  `getButtonTintList()`
  `int`
  `getCompoundPaddingLeft()`
  Returns the left padding of the view, plus space for the left Drawable if any.
  `int`
  `getCompoundPaddingRight()`
  Returns the right padding of the view, plus space for the right Drawable if any.
  `int`
  `getHorizontalOffsetForDrawables()`
  `final boolean`
  `isChecked()`
  Get the current checked state of the view
  `void`
  `jumpDrawablesToCurrentState()`
  Call `Drawable.jumpToCurrentState()` on all Drawable objects associated with this view.
  `protected int[]`
  `onCreateDrawableState(int extraSpace)`
  Generate the new `Drawable` state for this view.
  `protected void`
  `onDraw(Canvas canvas)`
  Draw the content of this view, implement this to do your drawing.
  `void`
  `onResolveDrawables(int layoutDirection)`
  Called when layout direction has been resolved.
  `boolean`
  `performClick()`
  Call this view's OnClickListener, if it is defined.
  `void`
  `setButtonDrawable(Drawable drawable)`
  Sets a drawable as the compound button image.
  `void`
  `setButtonTintList(ColorStateList tint)`
  Applies a tint to the button drawable.
  `void`
  `setChecked(boolean checked)`
  Change the checked state of the view
  `void`
  `setOnCheckedChangeListener(Checkable.OnCheckedChangeListener listener)`
  Register a callback to be invoked when the checked state of this button changes.
  `void`
  `toggle()`
  Change the checked state of the view to the inverse of its current state
  `protected boolean`
  `verifyDrawable(Drawable who)`
  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.Button

  `onResolvePointerIcon`

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

  `addTextChangedListener, bringPointIntoView, cancelLongPress, computeHorizontalScrollRange, computeVerticalScrollExtent, computeVerticalScrollRange, didTouchFocusSelect, getAutoLinkMask, getBaseline, getCompoundDrawablePadding, getCompoundDrawables, getCompoundDrawablesRelative, getCompoundPaddingBottom, getCompoundPaddingEnd, getCompoundPaddingStart, getCompoundPaddingTop, getCurrentHintTextColor, getCurrentTextColor, getEditableText, getEllipsize, getExtendedPaddingBottom, getExtendedPaddingTop, getFilters, getFirstBaselineToTopHeight, getFocusedRect, getGravity, getHighlightColor, getHint, getHintTextColors, getIncludeFontPadding, getLastBaselineToBottomHeight, getLayout, getLineBounds, getLineBreakStyle, getLineBreakWordStyle, getLineCount, getLineHeight, getLinksClickable, getLinkTextColors, getMaxHeight, getMaxLines, getMaxWidth, getMinHeight, getMinLines, getMinWidth, getMovementMethod, getOffsetForPosition, getPaint, getSelectionEnd, getSelectionStart, getText, getTextColors, getTextDirectionHeuristic, getTextLocale, getTextMetricsParams, getTextSize, getTextStyle, getTotalPaddingBottom, getTotalPaddingEnd, getTotalPaddingLeft, getTotalPaddingRight, getTotalPaddingStart, getTotalPaddingTop, getTransformationMethod, getTypeface, getWordIterator, hasSelection, isCursorVisible, isFallbackLineSpacing, isHorizontallyScrollable, isTextSelectable, makeNewLayout, moveCursorToVisibleOffset, nullLayouts, onAttachedToWindow, onCreateContextMenu, onDetachedFromWindow, onFocusChanged, onGenericMotionEvent, onKeyDown, onKeyShortcut, onKeyUp, onLayout, onMeasure, onPreDraw, onRtlPropertiesChanged, onTextChanged, onTextContextMenuItem, onTouchEvent, removeTextChangedListener, setAutoLinkMask, setCompoundDrawablePadding, setCompoundDrawables, setCompoundDrawablesRelative, setCompoundDrawablesRelativeWithIntrinsicBounds, setCompoundDrawablesWithIntrinsicBounds, setCursorVisible, setEditableFactory, setEllipsize, setEnabled, setFallbackLineSpacing, setFilters, setFirstBaselineToTopHeight, setGravity, setHeight, setHighlightColor, setHint, setHintTextColor, setHintTextColor, setHorizontallyScrolling, setIncludeFontPadding, setLastBaselineToBottomHeight, setLineBreakStyle, setLineBreakWordStyle, setLines, setLinksClickable, setLinkTextColor, setLinkTextColor, setMaxHeight, setMaxLines, setMaxWidth, setMinHeight, setMinLines, setMinWidth, setMovementMethod, setPadding, setPaddingRelative, setSelectAllOnFocus, setSingleLine, setSingleLine, setSpannableFactory, setText, setText, setTextColor, setTextColor, setTextIsSelectable, setTextKeepState, setTextKeepState, setTextLocale, setTextMetricsParams, setTextSize, setTextSize, setTextStyle, setTransformationMethod, setTypeface, setWidth, showContextMenu, useDynamicLayout`

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

  `addFocusables, addFocusables, addKeyboardNavigationClusters, addOnAttachStateChangeListener, addOnLayoutChangeListener, addTouchables, awakenScrollBars, awakenScrollBars, callOnClick, cancelPendingInputEvents, canReceivePointerEvents, canResolveLayoutDirection, canResolveTextAlignment, canResolveTextDirection, canScrollHorizontally, canScrollVertically, clearFocus, combineMeasuredStates, computeHorizontalScrollExtent, computeHorizontalScrollOffset, computeScroll, computeVerticalScrollOffset, createContextMenu, dispatchDraw, dispatchDrawableHotspotChanged, dispatchFinishTemporaryDetach, dispatchGenericMotionEvent, dispatchGenericPointerEvent, dispatchHoverEvent, dispatchKeyEvent, dispatchKeyShortcutEvent, dispatchNestedFling, dispatchNestedPreFling, dispatchNestedPreScroll, dispatchNestedScroll, dispatchPointerEvent, dispatchSetActivated, dispatchSetPressed, dispatchSetSelected, dispatchStartTemporaryDetach, dispatchTouchEvent, dispatchVisibilityChanged, dispatchWindowFocusChanged, dispatchWindowVisibilityChanged, dp, draw, findFocus, findViewById, findViewByPredicate, findViewByPredicateInsideOut, findViewByPredicateTraversal, findViewTraversal, focusSearch, forceHasOverlappingRendering, forceLayout, generateViewId, getAlpha, getAnimationMatrix, getBackground, getBottom, getBoundsOnScreen, getBoundsOnScreen, getContext, getContextMenuInfo, 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, handleScrollBarDragging, hasExplicitFocusable, hasFocus, hasFocusable, hasIdentityMatrix, hasNestedScrollingParent, hasOnClickListeners, hasOnLongClickListeners, hasOverlappingRendering, hasTransientState, hasTranslationTransientState, hasWindowFocus, internalSetPadding, 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, layout, mapRectFromViewToScreenCoords, measure, mergeDrawableStates, offsetLeftAndRight, offsetTopAndBottom, onCancelPendingInputEvents, onDragEvent, onDrawForeground, onDrawScrollBars, onFinishTemporaryDetach, onHoverChanged, onHoverEvent, onOverScrolled, onScrollChanged, onSizeChanged, onStartTemporaryDetach, onVisibilityAggregated, onVisibilityChanged, onWindowFocusChanged, onWindowVisibilityChanged, overScrollBy, performButtonActionOnTouchDown, performContextClick, performContextClick, performHapticFeedback, performHapticFeedback, performLongClick, performLongClick, playSoundEffect, pointInView, post, postDelayed, postInvalidate, postInvalidateDelayed, postInvalidateOnAnimation, postOnAnimation, postOnAnimationDelayed, refreshDrawableState, removeCallbacks, removeOnAttachStateChangeListener, removeOnLayoutChangeListener, requestFocus, requestFocus, requestFocus, requestLayout, requestRectangleOnScreen, requestRectangleOnScreen, requireViewById, resetPivot, resetResolvedDrawables, resolveDrawables, resolveLayoutDirection, resolveLayoutParams, resolvePadding, resolveRtlPropertiesIfNeeded, resolveSize, resolveSizeAndState, resolveTextAlignment, resolveTextDirection, restoreDefaultFocus, scheduleDrawable, scrollBy, scrollTo, setActivated, setAlpha, setAnimationMatrix, setBackground, setBottom, setClickable, setContextClickable, setDuplicateParentStateEnabled, setElevation, setFocusable, setFocusable, setFocusableInTouchMode, 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, setOnClickListener, setOnContextClickListener, setOnCreateContextMenuListener, setOnDragListener, setOnFocusChangeListener, setOnGenericMotionListener, setOnHoverListener, setOnKeyListener, setOnLongClickListener, setOnScrollChangeListener, setOnTouchListener, setOverScrollMode, 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`

- ## Field Details

  - ### CHECKED_STATE_SET

    public static final int[] CHECKED_STATE_SET

- ## Constructor Details

  - ### CompoundButton

    public CompoundButton(Context context)

- ## Method Details

  - ### toggle

    public void toggle()
    Description copied from interface: `Checkable`
    Change the checked state of the view to the inverse of its current state
    Specified by:
      `toggle` in interface `Checkable`

  - ### performClick

    public boolean performClick()
    Description copied from class: `View`
    Call this view's OnClickListener, if it is defined. Performs all normal actions associated with clicking: reporting accessibility event, playing a sound, etc.
    Overrides:
      `performClick` in class `View`
    Returns:
      True there was an assigned OnClickListener that was called, false otherwise is returned.

  - ### isChecked

    public final boolean isChecked()
    Description copied from interface: `Checkable`
    Get the current checked state of the view
    Specified by:
      `isChecked` in interface `Checkable`
    Returns:
      The current checked state of the view

  - ### setChecked

    public void setChecked(boolean checked)
    Description copied from interface: `Checkable`
    Change the checked state of the view
    Specified by:
      `setChecked` in interface `Checkable`
    Parameters:
      `checked` - The new checked state

  - ### setOnCheckedChangeListener

    public void setOnCheckedChangeListener(@Nullable Checkable.OnCheckedChangeListener listener)
    Register a callback to be invoked when the checked state of this button changes.
    Parameters:
      `listener` - the callback to call on checked state change

  - ### setButtonDrawable

    public void setButtonDrawable(@Nullable Drawable drawable)
    Sets a drawable as the compound button image.
    Parameters:
      `drawable` - the drawable to set

  - ### getButtonDrawable

    @Nullable public Drawable getButtonDrawable()
    Returns:
      the drawable used as the compound button image
    See Also:
      - `setButtonDrawable(Drawable)`

  - ### setButtonTintList

    public void setButtonTintList(@Nullable ColorStateList tint)
    Applies a tint to the button drawable. Does not modify the current tint mode, which is `SRC_IN` by default.

    Subsequent calls to `setButtonDrawable(Drawable)` will automatically mutate the drawable and apply the specified tint and tint mode using `Drawable.setTintList(ColorStateList)`.

    Parameters:
      `tint` - the tint to apply, may be `null` to clear tint
    See Also:
      - `setButtonTintList(ColorStateList)`
      - `Drawable.setTintList(ColorStateList)`

  - ### getButtonTintList

    @Nullable public final ColorStateList getButtonTintList()
    Returns:
      the tint applied to the button drawable
    See Also:
      - `setButtonTintList(ColorStateList)`

  - ### getCompoundPaddingLeft

    public int getCompoundPaddingLeft()
    Description copied from class: `TextView`
    Returns the left padding of the view, plus space for the left Drawable if any.
    Overrides:
      `getCompoundPaddingLeft` in class `TextView`

  - ### getCompoundPaddingRight

    public int getCompoundPaddingRight()
    Description copied from class: `TextView`
    Returns the right padding of the view, plus space for the right Drawable if any.
    Overrides:
      `getCompoundPaddingRight` in class `TextView`

  - ### getHorizontalOffsetForDrawables

    public int getHorizontalOffsetForDrawables()
    Overrides:
      `getHorizontalOffsetForDrawables` in class `TextView`

  - ### onDraw

    protected void onDraw(@Nonnull Canvas canvas)
    Description copied from class: `View`
    Draw the content of this view, implement this to do your drawing.

    Note that (0, 0) will be the top left of the bounds, and (width, height) will be the bottom right of the bounds.

    Overrides:
      `onDraw` in class `TextView`
    Parameters:
      `canvas` - the canvas to draw content

  - ### onCreateDrawableState

    @Nonnull protected int[] onCreateDrawableState(int extraSpace)
    Description copied from class: `View`
    Generate the new `Drawable` state for this view. This is called by the view system when the cached Drawable state is determined to be invalid. To retrieve the current state, you should use `View.getDrawableState()`.
    Overrides:
      `onCreateDrawableState` in class `TextView`
    Parameters:
      `extraSpace` - if non-zero, this is the number of extra entries you would like in the returned array in which you can place your own states.
    Returns:
      an array holding the current `Drawable` state of the view.
    See Also:
      - `View.mergeDrawableStates(int[], int[])`

  - ### 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 `TextView`
    See Also:
      - `Drawable.setState(int[])`

  - ### drawableHotspotChanged

    public void drawableHotspotChanged(float x, float y)
    Description copied from class: `View`
    This function is called whenever the view hotspot changes and needs to be propagated to drawables or child views managed by the view.

    Dispatching to child views is handled by `View.dispatchDrawableHotspotChanged(float, float)`.

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

    Overrides:
      `drawableHotspotChanged` in class `View`
    Parameters:
      `x` - hotspot x coordinate
      `y` - hotspot y coordinate

  - ### onResolveDrawables

    public void onResolveDrawables(int layoutDirection)
    Description copied from class: `View`
    Called when layout direction has been resolved.

    The default implementation does nothing.

    Overrides:
      `onResolveDrawables` in class `TextView`
    Parameters:
      `layoutDirection` - The resolved layout direction.
    See Also:
      - `View.LAYOUT_DIRECTION_LTR`
      - `View.LAYOUT_DIRECTION_RTL`

  - ### verifyDrawable

    protected boolean verifyDrawable(@Nonnull Drawable who)
    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 `TextView`
    Parameters:
      `who` - 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()`

  - ### jumpDrawablesToCurrentState

    public void jumpDrawablesToCurrentState()
    Description copied from class: `View`
    Call `Drawable.jumpToCurrentState()` on all Drawable objects associated with this view.

    Also calls `StateListAnimator.jumpToCurrentState()` if there is a StateListAnimator attached to this view.

    Overrides:
      `jumpDrawablesToCurrentState` in class `TextView`