Skip to content

Most visited

Recently visited



public interface ViewAction
Known Indirect Subclasses

Responsible for performing an interaction on the given View element.

This is part of the test framework public API - developers are free to write their own ViewAction implementations when necessary. When implementing a new ViewAction, follow these rules:

  • Inject motion events or key events via the UiController to simulate user interactions.
  • Do not mutate the view directly via setter methods and other state changing methods on the view parameter.
  • Do not throw AssertionErrors. Assertions belong in ViewAssertion classes.
  • View action code will executed on the UI thread, therefore you should not block, perform sleeps, or perform other expensive computations.
  • The test framework will wait for the UI thread to be idle both before and after perform() is called. This means that the action is guaranteed to be synchronized with any other view operations.
  • Downcasting the View object to an expected subtype is allowed, so long as the object expresses the subtype matches the constraints as specified in getConstraints.


Public methods

abstract Matcher<View> getConstraints()

A mechanism for ViewActions to specify what type of views they can operate on.

abstract String getDescription()

Returns a description of the view action.

abstract void perform(UiController uiController, View view)

Performs this action on the given view.

Public methods


Matcher<View> getConstraints ()

A mechanism for ViewActions to specify what type of views they can operate on. A ViewAction can demand that the view passed to perform meets certain constraints. For example it may want to ensure the view is already in the viewable physical screen of the device or is of a certain type.

Matcher<View> a Matcher that will be tested prior to calling perform.


String getDescription ()

Returns a description of the view action. The description should not be overly long and should fit nicely in a sentence like: "performing %description% action on view with id ..."



void perform (UiController uiController, 
                View view)

Performs this action on the given view.

uiController UiController: the controller to use to interact with the UI.

view View: the view to act upon. never null.

This site uses cookies to store your preferences for site-specific language and display options.

Get the latest Android developer news and tips that will help you find success on Google Play.

* Required Fields


Follow Google Developers on WeChat

Browse this site in ?

You requested a page in , but your language preference for this site is .

Would you like to change your language preference and browse this site in ? If you want to change your language preference later, use the language menu at the bottom of each page.

This class requires API level or higher

This doc is hidden because your selected API level for the documentation is . You can change the documentation API level with the selector above the left navigation.

For more information about specifying the API level your app requires, read Supporting Different Platform Versions.

Take a short survey?
Help us improve the Android developer experience. (Dec 2017 Android Platform & Tools Survey)