java.lang.Object | |
↳ | android.support.v4.view.ViewCompat |
Helper for accessing features in View
introduced after API
level 4 in a backwards compatible fashion.
Constants | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
int | ACCESSIBILITY_LIVE_REGION_ASSERTIVE | Live region mode specifying that accessibility services should interrupt ongoing speech to immediately announce changes to this view. | |||||||||
int | ACCESSIBILITY_LIVE_REGION_NONE | Live region mode specifying that accessibility services should not automatically announce changes to this view. | |||||||||
int | ACCESSIBILITY_LIVE_REGION_POLITE | Live region mode specifying that accessibility services should announce changes to this view. | |||||||||
int | IMPORTANT_FOR_ACCESSIBILITY_AUTO | Automatically determine whether a view is important for accessibility. | |||||||||
int | IMPORTANT_FOR_ACCESSIBILITY_NO | The view is not important for accessibility. | |||||||||
int | IMPORTANT_FOR_ACCESSIBILITY_NO_HIDE_DESCENDANTS | The view is not important for accessibility, nor are any of its descendant views. | |||||||||
int | IMPORTANT_FOR_ACCESSIBILITY_YES | The view is important for accessibility. | |||||||||
int | LAYER_TYPE_HARDWARE | Indicates that the view has a hardware layer. |
|||||||||
int | LAYER_TYPE_NONE | Indicates that the view does not have a layer. | |||||||||
int | LAYER_TYPE_SOFTWARE | Indicates that the view has a software layer. |
|||||||||
int | LAYOUT_DIRECTION_INHERIT | Horizontal layout direction of this view is inherited from its parent. | |||||||||
int | LAYOUT_DIRECTION_LOCALE | Horizontal layout direction of this view is from deduced from the default language script for the locale. | |||||||||
int | LAYOUT_DIRECTION_LTR | Horizontal layout direction of this view is from Left to Right. | |||||||||
int | LAYOUT_DIRECTION_RTL | Horizontal layout direction of this view is from Right to Left. | |||||||||
int | MEASURED_HEIGHT_STATE_SHIFT | Bit shift of MEASURED_STATE_MASK to get to the height bits
for functions that combine both width and height into a single int,
such as getMeasuredState(View) and the childState argument of
resolveSizeAndState(int, int, int) . |
|||||||||
int | MEASURED_SIZE_MASK | Bits of getMeasuredWidthAndState(View) and
getMeasuredWidthAndState(View) that provide the actual measured size. |
|||||||||
int | MEASURED_STATE_MASK | Bits of getMeasuredWidthAndState(View) and
getMeasuredWidthAndState(View) that provide the additional state bits. |
|||||||||
int | MEASURED_STATE_TOO_SMALL | Bit of getMeasuredWidthAndState(View) and
getMeasuredWidthAndState(View) that indicates the measured size
is smaller that the space the view would like to have. |
|||||||||
int | OVER_SCROLL_ALWAYS | Always allow a user to over-scroll this view, provided it is a view that can scroll. | |||||||||
int | OVER_SCROLL_IF_CONTENT_SCROLLS | Allow a user to over-scroll this view only if the content is large enough to meaningfully scroll, provided it is a view that can scroll. | |||||||||
int | OVER_SCROLL_NEVER | Never allow a user to over-scroll this view. |
Public Constructors | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Check if this view can be scrolled horizontally in a certain direction.
| |||||||||||
Check if this view can be scrolled vertically in a certain direction.
| |||||||||||
Gets the live region mode for the specified View.
| |||||||||||
Gets the provider for managing a virtual view hierarchy rooted at this View
and reported to
AccessibilityService s
that explore the window content. | |||||||||||
The opacity of the view.
| |||||||||||
Gets the mode for determining whether this View is important for accessibility
which is if it fires accessibility events and if it is reported to
accessibility services that query the screen.
| |||||||||||
Gets the id of a view for which a given view serves as a label for
accessibility purposes.
| |||||||||||
Indicates what type of layer is currently associated with this view.
| |||||||||||
Returns the resolved layout direction for this view.
| |||||||||||
Return the full height measurement information for this view as computed
by the most recent call to
measure(int, int) . | |||||||||||
Return only the state bits of
getMeasuredWidthAndState(View)
and getMeasuredHeightAndState(View) , combined into one integer. | |||||||||||
Return the full width measurement information for this view as computed
by the most recent call to
measure(int, int) . | |||||||||||
Returns the over-scroll mode for this view.
| |||||||||||
Gets the parent for accessibility purposes.
| |||||||||||
Indicates whether the view is currently tracking transient state that the
app should not need to concern itself with saving and restoring, but that
the framework should take special note to preserve when possible.
| |||||||||||
Indicates whether this View is opaque.
| |||||||||||
Initializes an
AccessibilityEvent with information about
this View which is the event source. | |||||||||||
Initializes an
AccessibilityNodeInfo with information
about this view. | |||||||||||
Called from
dispatchPopulateAccessibilityEvent(AccessibilityEvent)
giving a chance to this View to populate the accessibility event with its
text content. | |||||||||||
Performs the specified accessibility action on the view.
| |||||||||||
Cause an invalidate to happen on the next animation time step, typically the next display frame. | |||||||||||
Cause an invalidate of the specified area to happen on the next animation time step, typically the next display frame. | |||||||||||
Causes the Runnable to execute on the next animation time step. | |||||||||||
Causes the Runnable to execute on the next animation time step, after the specified amount of time elapses. | |||||||||||
Utility to reconcile a desired size and state, with constraints imposed
by a MeasureSpec.
| |||||||||||
Sets a delegate for implementing accessibility support via compositon as
opposed to inheritance.
| |||||||||||
Sets the live region mode for the specified view.
| |||||||||||
Set whether this view is currently tracking transient state that the
framework should attempt to preserve when possible.
| |||||||||||
Sets how to determine whether this view is important for accessibility
which is if it fires accessibility events and if it is reported to
accessibility services that query the screen.
| |||||||||||
Sets the id of a view for which a given view serves as a label for
accessibility purposes.
| |||||||||||
Updates the
Paint object used with the current layer (used only if the current
layer type is not set to LAYER_TYPE_NONE ). | |||||||||||
Specifies the type of layer backing this view. | |||||||||||
Set the layout direction for this view.
| |||||||||||
Set the over-scroll mode for this view.
|
[Expand]
Inherited Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
From class
java.lang.Object
|
Live region mode specifying that accessibility services should interrupt ongoing speech to immediately announce changes to this view.
Use with setAccessibilityLiveRegion(View, int)
.
Live region mode specifying that accessibility services should not automatically announce changes to this view. This is the default live region mode for most views.
Use with setAccessibilityLiveRegion(View, int)
.
Live region mode specifying that accessibility services should announce changes to this view.
Use with setAccessibilityLiveRegion(View, int)
.
Automatically determine whether a view is important for accessibility.
The view is not important for accessibility.
The view is not important for accessibility, nor are any of its descendant views.
The view is important for accessibility.
Indicates that the view has a hardware layer. A hardware layer is backed
by a hardware specific texture (generally Frame Buffer Objects or FBO on
OpenGL hardware) and causes the view to be rendered using Android's hardware
rendering pipeline, but only if hardware acceleration is turned on for the
view hierarchy. When hardware acceleration is turned off, hardware layers
behave exactly as software layers
.
A hardware layer is useful to apply a specific color filter and/or blending mode and/or translucency to a view and all its children.
A hardware layer can be used to cache a complex view tree into a texture and reduce the complexity of drawing operations. For instance, when animating a complex view tree with a translation, a hardware layer can be used to render the view tree only once.
A hardware layer can also be used to increase the rendering quality when rotation transformations are applied on a view. It can also be used to prevent potential clipping issues when applying 3D transforms on a view.
Indicates that the view does not have a layer.
Indicates that the view has a software layer. A software layer is backed by a bitmap and causes the view to be rendered using Android's software rendering pipeline, even if hardware acceleration is enabled.
Software layers have various usages:
When the application is not using hardware acceleration, a software layer is useful to apply a specific color filter and/or blending mode and/or translucency to a view and all its children.
When the application is using hardware acceleration, a software layer is useful to render drawing primitives not supported by the hardware accelerated pipeline. It can also be used to cache a complex view tree into a texture and reduce the complexity of drawing operations. For instance, when animating a complex view tree with a translation, a software layer can be used to render the view tree only once.
Software layers should be avoided when the affected view tree updates often. Every update will require to re-render the software layer, which can potentially be slow (particularly when hardware acceleration is turned on since the layer will have to be uploaded into a hardware texture after every update.)
Horizontal layout direction of this view is inherited from its parent.
Use with setLayoutDirection(View, int)
.
Horizontal layout direction of this view is from deduced from the default language
script for the locale. Use with setLayoutDirection(View, int)
.
Horizontal layout direction of this view is from Left to Right.
Horizontal layout direction of this view is from Right to Left.
Bit shift of MEASURED_STATE_MASK
to get to the height bits
for functions that combine both width and height into a single int,
such as getMeasuredState(View)
and the childState argument of
resolveSizeAndState(int, int, int)
.
Bits of getMeasuredWidthAndState(View)
and
getMeasuredWidthAndState(View)
that provide the actual measured size.
Bits of getMeasuredWidthAndState(View)
and
getMeasuredWidthAndState(View)
that provide the additional state bits.
Bit of getMeasuredWidthAndState(View)
and
getMeasuredWidthAndState(View)
that indicates the measured size
is smaller that the space the view would like to have.
Always allow a user to over-scroll this view, provided it is a view that can scroll.
Allow a user to over-scroll this view only if the content is large enough to meaningfully scroll, provided it is a view that can scroll.
Never allow a user to over-scroll this view.
Check if this view can be scrolled horizontally in a certain direction.
v | The View against which to invoke the method. |
---|---|
direction | Negative to check scrolling left, positive to check scrolling right. |
Check if this view can be scrolled vertically in a certain direction.
v | The View against which to invoke the method. |
---|---|
direction | Negative to check scrolling up, positive to check scrolling down. |
Gets the live region mode for the specified View.
view | The view from which to obtain the live region mode |
---|
Gets the provider for managing a virtual view hierarchy rooted at this View
and reported to AccessibilityService
s
that explore the window content.
If this method returns an instance, this instance is responsible for managing
AccessibilityNodeInfoCompat
s describing the virtual sub-tree rooted at
this View including the one representing the View itself. Similarly the returned
instance is responsible for performing accessibility actions on any virtual
view or the root view itself.
If an AccessibilityDelegateCompat
has been specified via calling
setAccessibilityDelegate(View, AccessibilityDelegateCompat)
its
getAccessibilityNodeProvider(View)
is responsible for handling this call.
view | The view whose property to get. |
---|
The opacity of the view. This is a value from 0 to 1, where 0 means the view is completely transparent and 1 means the view is completely opaque.
By default this is 1.0f. Prior to API 11, the returned value is always 1.0f.
Gets the mode for determining whether this View is important for accessibility which is if it fires accessibility events and if it is reported to accessibility services that query the screen.
view | The view whose property to get. |
---|
Gets the id of a view for which a given view serves as a label for accessibility purposes.
view | The view on which to invoke the corresponding method. |
---|
Indicates what type of layer is currently associated with this view. By default
a view does not have a layer, and the layer type is LAYER_TYPE_NONE
.
Refer to the documentation of
setLayerType(android.view.View, int, android.graphics.Paint)
for more information on the different types of layers.
view | The view to fetch the layer type from |
---|
Returns the resolved layout direction for this view.
view | View to get layout direction for |
---|
LAYOUT_DIRECTION_RTL
if the layout direction is RTL or returns
LAYOUT_DIRECTION_LTR
if the layout direction is not RTL.
For compatibility, this will return LAYOUT_DIRECTION_LTR
if API version
is lower than Jellybean MR1 (API 17)
Return the full height measurement information for this view as computed
by the most recent call to measure(int, int)
.
This result is a bit mask as defined by MEASURED_SIZE_MASK
and
MEASURED_STATE_TOO_SMALL
.
This should be used during measurement and layout calculations only. Use
getHeight()
to see how wide a view is after layout.
Return only the state bits of getMeasuredWidthAndState(View)
and getMeasuredHeightAndState(View)
, combined into one integer.
The width component is in the regular bits MEASURED_STATE_MASK
and the height component is at the shifted bits
MEASURED_HEIGHT_STATE_SHIFT
>>MEASURED_STATE_MASK
.
Return the full width measurement information for this view as computed
by the most recent call to measure(int, int)
.
This result is a bit mask as defined by MEASURED_SIZE_MASK
and
MEASURED_STATE_TOO_SMALL
.
This should be used during measurement and layout calculations only. Use
getWidth()
to see how wide a view is after layout.
Returns the over-scroll mode for this view. The result will be
one of OVER_SCROLL_ALWAYS
(default), OVER_SCROLL_IF_CONTENT_SCROLLS
(allow over-scrolling only if the view content is larger than the container),
or OVER_SCROLL_NEVER
.
v | The View against which to invoke the method. |
---|
Gets the parent for accessibility purposes. Note that the parent for accessibility is not necessary the immediate parent. It is the first predecessor that is important for accessibility.
view | View to retrieve parent for |
---|
Indicates whether the view is currently tracking transient state that the app should not need to concern itself with saving and restoring, but that the framework should take special note to preserve when possible.
view | View to check for transient state |
---|
Indicates whether this View is opaque. An opaque View guarantees that it will draw all the pixels overlapping its bounds using a fully opaque color. On API 7 and above this will call View's true isOpaque method. On previous platform versions it will check the opacity of the view's background drawable if present.
Initializes an AccessibilityEvent
with information about
this View which is the event source. In other words, the source of
an accessibility event is the view whose state change triggered firing
the event.
Example: Setting the password property of an event in addition to properties set by the super implementation:
public void onInitializeAccessibilityEvent(AccessibilityEvent event) { super.onInitializeAccessibilityEvent(event); event.setPassword(true); }
If an View.AccessibilityDelegate
has been specified via calling
setAccessibilityDelegate(android.view.View.AccessibilityDelegate)
its
onInitializeAccessibilityEvent(View, AccessibilityEvent)
is responsible for handling this call.
Note: Always call the super implementation before adding information to the event, in case the default implementation has basic information to add.
v | The View against which to invoke the method. |
---|---|
event | The event to initialize. |
Initializes an AccessibilityNodeInfo
with information
about this view. The base implementation sets:
setParent(View)
,setBoundsInParent(Rect)
,setBoundsInScreen(Rect)
,setPackageName(CharSequence)
,setClassName(CharSequence)
,setContentDescription(CharSequence)
,setEnabled(boolean)
,setClickable(boolean)
,setFocusable(boolean)
,setFocused(boolean)
,setLongClickable(boolean)
,setSelected(boolean)
,Subclasses should override this method, call the super implementation, and set additional attributes.
If an View.AccessibilityDelegate
has been specified via calling
setAccessibilityDelegate(android.view.View.AccessibilityDelegate)
its
onInitializeAccessibilityNodeInfo(View, android.view.accessibility.AccessibilityNodeInfo)
is responsible for handling this call.
v | The View against which to invoke the method. |
---|---|
info | The instance to initialize. |
Called from dispatchPopulateAccessibilityEvent(AccessibilityEvent)
giving a chance to this View to populate the accessibility event with its
text content. While this method is free to modify event
attributes other than text content, doing so should normally be performed in
onInitializeAccessibilityEvent(AccessibilityEvent)
.
Example: Adding formatted date string to an accessibility event in addition to the text added by the super implementation:
public void onPopulateAccessibilityEvent(AccessibilityEvent event) { super.onPopulateAccessibilityEvent(event); final int flags = DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_SHOW_WEEKDAY; String selectedDateUtterance = DateUtils.formatDateTime(mContext, mCurrentDate.getTimeInMillis(), flags); event.getText().add(selectedDateUtterance); }
If an View.AccessibilityDelegate
has been specified via calling
setAccessibilityDelegate(android.view.View.AccessibilityDelegate)
its
onPopulateAccessibilityEvent(View, AccessibilityEvent)
is responsible for handling this call.
Note: Always call the super implementation before adding information to the event, in case the default implementation has basic information to add.
v | The View against which to invoke the method. |
---|---|
event | The accessibility event which to populate. |
Performs the specified accessibility action on the view. For
possible accessibility actions look at AccessibilityNodeInfoCompat
.
If an AccessibilityDelegateCompat
has been specified via calling
setAccessibilityDelegate(View, AccessibilityDelegateCompat)
its
performAccessibilityAction(View, int, Bundle)
is responsible for handling this call.
action | The action to perform. |
---|---|
arguments | Optional action arguments. |
Cause an invalidate to happen on the next animation time step, typically the next display frame.
This method can be invoked from outside of the UI thread only when this View is attached to a window.
view | View to invalidate |
---|
Cause an invalidate of the specified area to happen on the next animation time step, typically the next display frame.
This method can be invoked from outside of the UI thread only when this View is attached to a window.
view | View to invalidate |
---|---|
left | The left coordinate of the rectangle to invalidate. |
top | The top coordinate of the rectangle to invalidate. |
right | The right coordinate of the rectangle to invalidate. |
bottom | The bottom coordinate of the rectangle to invalidate. |
Causes the Runnable to execute on the next animation time step. The runnable will be run on the user interface thread.
This method can be invoked from outside of the UI thread only when this View is attached to a window.
view | View to post this Runnable to |
---|---|
action | The Runnable that will be executed. |
Causes the Runnable to execute on the next animation time step, after the specified amount of time elapses. The runnable will be run on the user interface thread.
This method can be invoked from outside of the UI thread only when this View is attached to a window.
view | The view to post this Runnable to |
---|---|
action | The Runnable that will be executed. |
delayMillis | The delay (in milliseconds) until the Runnable will be executed. |
Utility to reconcile a desired size and state, with constraints imposed
by a MeasureSpec. Will take the desired size, unless a different size
is imposed by the constraints. The returned value is a compound integer,
with the resolved size in the MEASURED_SIZE_MASK
bits and
optionally the bit MEASURED_STATE_TOO_SMALL
set if the resulting
size is smaller than the size the view wants to be.
size | How big the view wants to be |
---|---|
measureSpec | Constraints imposed by the parent |
MEASURED_SIZE_MASK
and MEASURED_STATE_TOO_SMALL
.
Sets a delegate for implementing accessibility support via compositon as
opposed to inheritance. The delegate's primary use is for implementing
backwards compatible widgets. For more details see
View.AccessibilityDelegate
.
v | The View against which to invoke the method. |
---|---|
delegate | The delegate instance. |
Sets the live region mode for the specified view. This indicates to accessibility services whether they should automatically notify the user about changes to the view's content description or text, or to the content descriptions or text of the view's children (where applicable).
For example, in a login screen with a TextView that displays an "incorrect
password" notification, that view should be marked as a live region with
mode ACCESSIBILITY_LIVE_REGION_POLITE
.
To disable change notifications for this view, use
ACCESSIBILITY_LIVE_REGION_NONE
. This is the default live region
mode for most views.
To indicate that the user should be notified of changes, use
ACCESSIBILITY_LIVE_REGION_POLITE
.
If the view's changes should interrupt ongoing speech and notify the user
immediately, use ACCESSIBILITY_LIVE_REGION_ASSERTIVE
.
view | The view on which to set the live region mode |
---|---|
mode | The live region mode for this view, one of: |
Set whether this view is currently tracking transient state that the framework should attempt to preserve when possible.
view | View tracking transient state |
---|---|
hasTransientState | true if this view has transient state |
Sets how to determine whether this view is important for accessibility which is if it fires accessibility events and if it is reported to accessibility services that query the screen.
view | The view whose property to set. |
---|---|
mode | How to determine whether this view is important for accessibility. |
Sets the id of a view for which a given view serves as a label for accessibility purposes.
view | The view on which to invoke the corresponding method. |
---|---|
labeledId | The labeled view id. |
Updates the Paint
object used with the current layer (used only if the current
layer type is not set to LAYER_TYPE_NONE
). Changed properties of the Paint
provided to setLayerType(android.view.View, int, android.graphics.Paint)
will be used the next time the View is redrawn, but
setLayerPaint(android.view.View, android.graphics.Paint)
must be called to ensure that the view gets redrawn immediately.
A layer is associated with an optional Paint
instance that controls how the layer is composed on screen. The following
properties of the paint are taken into account when composing the layer:
If this view has an alpha value set to < 1.0 by calling View#setAlpha(float), the alpha value of the layer's paint is replaced by this view's alpha value. Calling View#setAlpha(float) is therefore equivalent to setting a hardware layer on this view and providing a paint with the desired alpha value.
view | View to set a layer paint for |
---|---|
paint | The paint used to compose the layer. This argument is optional
and can be null. It is ignored when the layer type is
LAYER_TYPE_NONE |
Specifies the type of layer backing this view. The layer can be
disabled
, software
or
hardware
.
A layer is associated with an optional Paint
instance that controls how the layer is composed on screen. The following
properties of the paint are taken into account when composing the layer:
If this view has an alpha value set to < 1.0 by calling setAlpha(float), the alpha value of the layer's paint is replaced by this view's alpha value. Calling setAlpha(float) is therefore equivalent to setting a hardware layer on this view and providing a paint with the desired alpha value.
Refer to the documentation of disabled
,
software
and hardware
for more information on when and how to use layers.
view | View to set the layer type for |
---|---|
layerType | The type of layer to use with this view, must be one of
LAYER_TYPE_NONE , LAYER_TYPE_SOFTWARE or
LAYER_TYPE_HARDWARE |
paint | The paint used to compose the layer. This argument is optional
and can be null. It is ignored when the layer type is
LAYER_TYPE_NONE
|
Set the layout direction for this view. This will propagate a reset of layout direction resolution to the view's children and resolve layout direction for this view.
view | View to set layout direction for |
---|---|
layoutDirection | the layout direction to set. Should be one of:
LAYOUT_DIRECTION_LTR ,
LAYOUT_DIRECTION_RTL ,
LAYOUT_DIRECTION_INHERIT ,
LAYOUT_DIRECTION_LOCALE .
Resolution will be done if the value is set to LAYOUT_DIRECTION_INHERIT. The resolution
proceeds up the parent chain of the view to get the value. If there is no parent, then it
will return the default LAYOUT_DIRECTION_LTR .
|
Set the over-scroll mode for this view. Valid over-scroll modes are
OVER_SCROLL_ALWAYS
(default), OVER_SCROLL_IF_CONTENT_SCROLLS
(allow over-scrolling only if the view content is larger than the container),
or OVER_SCROLL_NEVER
.
Setting the over-scroll mode of a view will have an effect only if the
view is capable of scrolling.
v | The View against which to invoke the method. |
---|---|
overScrollMode | The new over-scroll mode for this view. |