to top
Android APIs
public class

ViewCompat

extends Object
java.lang.Object
   ↳ android.support.v4.view.ViewCompat

Class Overview

Helper for accessing features in View introduced after API level 4 in a backwards compatible fashion.

Summary

Constants
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_YES The view is important for accessibility.
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
ViewCompat()
Public Methods
static boolean canScrollHorizontally(View v, int direction)
Check if this view can be scrolled horizontally in a certain direction.
static boolean canScrollVertically(View v, int direction)
Check if this view can be scrolled vertically in a certain direction.
static AccessibilityNodeProviderCompat getAccessibilityNodeProvider(View view)
Gets the provider for managing a virtual view hierarchy rooted at this View and reported to AccessibilityServices that explore the window content.
static int getImportantForAccessibility(View 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.
static int getOverScrollMode(View v)
Returns the over-scroll mode for this view.
static boolean hasTransientState(View view)
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.
static void onInitializeAccessibilityEvent(View v, AccessibilityEvent event)
Initializes an AccessibilityEvent with information about this View which is the event source.
static void onInitializeAccessibilityNodeInfo(View v, AccessibilityNodeInfoCompat info)
Initializes an AccessibilityNodeInfo with information about this view.
static void onPopulateAccessibilityEvent(View v, AccessibilityEvent event)
Called from dispatchPopulateAccessibilityEvent(AccessibilityEvent) giving a chance to this View to populate the accessibility event with its text content.
static void postInvalidateOnAnimation(View view)

Cause an invalidate to happen on the next animation time step, typically the next display frame.

static void postInvalidateOnAnimation(View view, int left, int top, int right, int bottom)

Cause an invalidate of the specified area to happen on the next animation time step, typically the next display frame.

static void postOnAnimation(View view, Runnable action)

Causes the Runnable to execute on the next animation time step.

static void postOnAnimationDelayed(View view, Runnable action, long delayMillis)

Causes the Runnable to execute on the next animation time step, after the specified amount of time elapses.

static void setAccessibilityDelegate(View v, AccessibilityDelegateCompat delegate)
Sets a delegate for implementing accessibility support via compositon as opposed to inheritance.
static void setHasTransientState(View view, boolean hasTransientState)
Set whether this view is currently tracking transient state that the framework should attempt to preserve when possible.
static void setImportantForAccessibility(View view, int mode)
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.
static void setOverScrollMode(View v, int overScrollMode)
Set the over-scroll mode for this view.
[Expand]
Inherited Methods
From class java.lang.Object

Constants

public static final int IMPORTANT_FOR_ACCESSIBILITY_AUTO

Automatically determine whether a view is important for accessibility.

Constant Value: 0 (0x00000000)

public static final int IMPORTANT_FOR_ACCESSIBILITY_NO

The view is not important for accessibility.

Constant Value: 2 (0x00000002)

public static final int IMPORTANT_FOR_ACCESSIBILITY_YES

The view is important for accessibility.

Constant Value: 1 (0x00000001)

public static final int OVER_SCROLL_ALWAYS

Always allow a user to over-scroll this view, provided it is a view that can scroll.

Constant Value: 0 (0x00000000)

public static final 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.

Constant Value: 1 (0x00000001)

public static final int OVER_SCROLL_NEVER

Never allow a user to over-scroll this view.

Constant Value: 2 (0x00000002)

Public Constructors

public ViewCompat ()

Public Methods

public static boolean canScrollHorizontally (View v, int direction)

Check if this view can be scrolled horizontally in a certain direction.

Parameters
v The View against which to invoke the method.
direction Negative to check scrolling left, positive to check scrolling right.
Returns
  • true if this view can be scrolled in the specified direction, false otherwise.

public static boolean canScrollVertically (View v, int direction)

Check if this view can be scrolled vertically in a certain direction.

Parameters
v The View against which to invoke the method.
direction Negative to check scrolling up, positive to check scrolling down.
Returns
  • true if this view can be scrolled in the specified direction, false otherwise.

public static AccessibilityNodeProviderCompat getAccessibilityNodeProvider (View view)

Gets the provider for managing a virtual view hierarchy rooted at this View and reported to AccessibilityServices that explore the window content.

If this method returns an instance, this instance is responsible for managing AccessibilityNodeInfoCompats 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 its {@link AccessibilityDelegateCompat#getAccessibilityNodeProvider(View) is responsible for handling this call.

Parameters
view The view whose property to get.
Returns
  • The provider.

public static int getImportantForAccessibility (View 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.

Parameters
view The view whose property to get.
Returns
  • The mode for determining whether a View is important for accessibility.

public static int getOverScrollMode (View v)

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.

Parameters
v The View against which to invoke the method.
Returns
  • This view's over-scroll mode.

public static boolean hasTransientState (View view)

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.

Parameters
view View to check for transient state
Returns
  • true if the view has transient state

public static void onInitializeAccessibilityEvent (View v, AccessibilityEvent event)

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.

Parameters
v The View against which to invoke the method.
event The event to initialize.

public static void onInitializeAccessibilityNodeInfo (View v, AccessibilityNodeInfoCompat info)

Parameters
v The View against which to invoke the method.
info The instance to initialize.

public static void onPopulateAccessibilityEvent (View v, AccessibilityEvent event)

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.

Parameters
v The View against which to invoke the method.
event The accessibility event which to populate.

public static void postInvalidateOnAnimation (View view)

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.

Parameters
view View to invalidate

public static void postInvalidateOnAnimation (View view, int left, int top, int right, int bottom)

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.

Parameters
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.

public static void postOnAnimation (View view, Runnable action)

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.

Parameters
view View to post this Runnable to
action The Runnable that will be executed.

public static void postOnAnimationDelayed (View view, Runnable action, long delayMillis)

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.

Parameters
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.

public static void setAccessibilityDelegate (View v, AccessibilityDelegateCompat delegate)

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.

Parameters
v The View against which to invoke the method.
delegate The delegate instance.

public static void setHasTransientState (View view, boolean hasTransientState)

Set whether this view is currently tracking transient state that the framework should attempt to preserve when possible.

Parameters
view View tracking transient state
hasTransientState true if this view has transient state

public static void setImportantForAccessibility (View view, int mode)

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.

Parameters
view The view whose property to set.
mode How to determine whether this view is important for accessibility.

public static void setOverScrollMode (View v, int overScrollMode)

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.

Parameters
v The View against which to invoke the method.
overScrollMode The new over-scroll mode for this view.