# InputDeviceCompat

added in[version 22.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  
belongs to Maven artifact com.android.support:support-compat:28.0.0-alpha1  
Summary:[Constants](https://developer.android.com/reference/android/support/v4/view/InputDeviceCompat#constants)\|[Inherited Methods](https://developer.android.com/reference/android/support/v4/view/InputDeviceCompat#inhmethods)\|[\[Expand All\]](https://developer.android.com/reference/android/support/v4/view/InputDeviceCompat#)  

# InputDeviceCompat

| This package is part of the Android[support library](https://developer.android.com/topic/libraries/support-library)which is no longer maintained. The support library has been superseded by[AndroidX](https://developer.android.com/jetpack/androidx)which is part of[Jetpack](https://developer.android.com/jetpack). We recommend using the AndroidX libraries in all new projects. You should also consider[migrating](https://developer.android.com/jetpack/androidx/migrate)existing projects to AndroidX. To find the AndroidX class that maps to this deprecated class, see the AndroidX support library[class mappings](https://developer.android.com/jetpack/androidx/migrate/class-mappings).

`
public

final

class
InputDeviceCompat
`  
`

extends Object


``


`

|---|-------------------------------------------|
| java.lang.Object                             ||
| ↳ | android.support.v4.view.InputDeviceCompat |

<br />

*** ** * ** ***

Helper class for accessing values in[InputDevice](https://developer.android.com/reference/android/view/InputDevice.html).

## Summary

|                                                                                                                                                                          ### Constants                                                                                                                                                                           ||
|-------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `int` | [SOURCE_ANY](https://developer.android.com/reference/android/support/v4/view/InputDeviceCompat#SOURCE_ANY) A special input source constant that is used when filtering input devices to match devices that provide any type of input source.                                                                                                              |
| `int` | [SOURCE_CLASS_BUTTON](https://developer.android.com/reference/android/support/v4/view/InputDeviceCompat#SOURCE_CLASS_BUTTON) The input source has buttons or keys.                                                                                                                                                                                        |
| `int` | [SOURCE_CLASS_JOYSTICK](https://developer.android.com/reference/android/support/v4/view/InputDeviceCompat#SOURCE_CLASS_JOYSTICK) The input source is a joystick.                                                                                                                                                                                          |
| `int` | [SOURCE_CLASS_MASK](https://developer.android.com/reference/android/support/v4/view/InputDeviceCompat#SOURCE_CLASS_MASK) A mask for input source classes.                                                                                                                                                                                                 |
| `int` | [SOURCE_CLASS_NONE](https://developer.android.com/reference/android/support/v4/view/InputDeviceCompat#SOURCE_CLASS_NONE) The input source has no class.                                                                                                                                                                                                   |
| `int` | [SOURCE_CLASS_POINTER](https://developer.android.com/reference/android/support/v4/view/InputDeviceCompat#SOURCE_CLASS_POINTER) The input source is a pointing device associated with a display.                                                                                                                                                           |
| `int` | [SOURCE_CLASS_POSITION](https://developer.android.com/reference/android/support/v4/view/InputDeviceCompat#SOURCE_CLASS_POSITION) The input source is an absolute positioning device not associated with a display (unlike[SOURCE_CLASS_POINTER](https://developer.android.com/reference/android/support/v4/view/InputDeviceCompat#SOURCE_CLASS_POINTER)). |
| `int` | [SOURCE_CLASS_TRACKBALL](https://developer.android.com/reference/android/support/v4/view/InputDeviceCompat#SOURCE_CLASS_TRACKBALL) The input source is a trackball navigation device.                                                                                                                                                                     |
| `int` | [SOURCE_DPAD](https://developer.android.com/reference/android/support/v4/view/InputDeviceCompat#SOURCE_DPAD) The input source is a DPad.                                                                                                                                                                                                                  |
| `int` | [SOURCE_GAMEPAD](https://developer.android.com/reference/android/support/v4/view/InputDeviceCompat#SOURCE_GAMEPAD) The input source is a game pad.                                                                                                                                                                                                        |
| `int` | [SOURCE_HDMI](https://developer.android.com/reference/android/support/v4/view/InputDeviceCompat#SOURCE_HDMI) The input source is a device connected through HDMI-based bus.                                                                                                                                                                               |
| `int` | [SOURCE_JOYSTICK](https://developer.android.com/reference/android/support/v4/view/InputDeviceCompat#SOURCE_JOYSTICK) The input source is a joystick.                                                                                                                                                                                                      |
| `int` | [SOURCE_KEYBOARD](https://developer.android.com/reference/android/support/v4/view/InputDeviceCompat#SOURCE_KEYBOARD) The input source is a keyboard.                                                                                                                                                                                                      |
| `int` | [SOURCE_MOUSE](https://developer.android.com/reference/android/support/v4/view/InputDeviceCompat#SOURCE_MOUSE) The input source is a mouse pointing device.                                                                                                                                                                                               |
| `int` | [SOURCE_ROTARY_ENCODER](https://developer.android.com/reference/android/support/v4/view/InputDeviceCompat#SOURCE_ROTARY_ENCODER) The input source is a rotating encoder device whose motions should be interpreted as akin to those of a scroll wheel.                                                                                                    |
| `int` | [SOURCE_STYLUS](https://developer.android.com/reference/android/support/v4/view/InputDeviceCompat#SOURCE_STYLUS) The input source is a stylus pointing device.                                                                                                                                                                                            |
| `int` | [SOURCE_TOUCHPAD](https://developer.android.com/reference/android/support/v4/view/InputDeviceCompat#SOURCE_TOUCHPAD) The input source is a touch pad or digitizer tablet that is not associated with a display (unlike[SOURCE_TOUCHSCREEN](https://developer.android.com/reference/android/support/v4/view/InputDeviceCompat#SOURCE_TOUCHSCREEN)).        |
| `int` | [SOURCE_TOUCHSCREEN](https://developer.android.com/reference/android/support/v4/view/InputDeviceCompat#SOURCE_TOUCHSCREEN) The input source is a touch screen pointing device.                                                                                                                                                                            |
| `int` | [SOURCE_TOUCH_NAVIGATION](https://developer.android.com/reference/android/support/v4/view/InputDeviceCompat#SOURCE_TOUCH_NAVIGATION) The input source is a touch device whose motions should be interpreted as navigation events.                                                                                                                         |
| `int` | [SOURCE_TRACKBALL](https://developer.android.com/reference/android/support/v4/view/InputDeviceCompat#SOURCE_TRACKBALL) The input source is a trackball.                                                                                                                                                                                                   |
| `int` | [SOURCE_UNKNOWN](https://developer.android.com/reference/android/support/v4/view/InputDeviceCompat#SOURCE_UNKNOWN) The input source is unknown.                                                                                                                                                                                                           |

| ### Inherited methods |
|-----------------------|---|
| [![](https://developer.android.com/static/assets/images/styles/disclosure_down.png)](https://developer.android.com/reference/android/support/v4/view/InputDeviceCompat#)From class` java.lang.Object ` |-------------------|-------------------------------| | ` Object`         | ` clone() `                   | | ` boolean`        | ` equals(Object arg0) `       | | ` void`           | ` finalize() `                | | ` final Class<?>` | ` getClass() `                | | ` int`            | ` hashCode() `                | | ` final void`     | ` notify() `                  | | ` final void`     | ` notifyAll() `               | | ` String`         | ` toString() `                | | ` final void`     | ` wait(long arg0, int arg1) ` | | ` final void`     | ` wait(long arg0) `           | | ` final void`     | ` wait() `                    | ||

## Constants

### SOURCE_ANY

added in[version 22.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
int SOURCE_ANY
```

A special input source constant that is used when filtering input devices to match devices that provide any type of input source.

<br />

Constant Value: -256 (0xffffff00)  

### SOURCE_CLASS_BUTTON

added in[version 22.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
int SOURCE_CLASS_BUTTON
```

The input source has buttons or keys. Examples:[SOURCE_KEYBOARD](https://developer.android.com/reference/android/support/v4/view/InputDeviceCompat#SOURCE_KEYBOARD),[SOURCE_DPAD](https://developer.android.com/reference/android/support/v4/view/InputDeviceCompat#SOURCE_DPAD). A[KeyEvent](https://developer.android.com/reference/android/view/KeyEvent.html)should be interpreted as a button or key press.

<br />

Constant Value: 1 (0x00000001)  

### SOURCE_CLASS_JOYSTICK

added in[version 22.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
int SOURCE_CLASS_JOYSTICK
```

The input source is a joystick. A[MotionEvent](https://developer.android.com/reference/android/view/MotionEvent.html)should be interpreted as absolute joystick movements. Use[getMotionRange(int)](https://developer.android.com/reference/android/view/InputDevice.html#getMotionRange(int))to query the range of positions.

<br />

Constant Value: 16 (0x00000010)  

### SOURCE_CLASS_MASK

added in[version 22.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
int SOURCE_CLASS_MASK
```

A mask for input source classes. Each distinct input source constant has one or more input source class bits set to specify the desired interpretation for its input events.

<br />

Constant Value: 255 (0x000000ff)  

### SOURCE_CLASS_NONE

added in[version 22.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
int SOURCE_CLASS_NONE
```

The input source has no class. It is up to the application to determine how to handle the device based on the device type.

<br />

Constant Value: 0 (0x00000000)  

### SOURCE_CLASS_POINTER

added in[version 22.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
int SOURCE_CLASS_POINTER
```

The input source is a pointing device associated with a display. Examples:[SOURCE_TOUCHSCREEN](https://developer.android.com/reference/android/support/v4/view/InputDeviceCompat#SOURCE_TOUCHSCREEN),[SOURCE_MOUSE](https://developer.android.com/reference/android/support/v4/view/InputDeviceCompat#SOURCE_MOUSE). A[MotionEvent](https://developer.android.com/reference/android/view/MotionEvent.html)should be interpreted as absolute coordinates in display units according to the[View](https://developer.android.com/reference/android/view/View.html)hierarchy. Pointer down/up indicated when the finger touches the display or when the selection button is pressed/released. Use[getMotionRange(int)](https://developer.android.com/reference/android/view/InputDevice.html#getMotionRange(int))to query the range of the pointing device. Some devices permit touches outside the display area so the effective range may be somewhat smaller or larger than the actual display size.

<br />

Constant Value: 2 (0x00000002)  

### SOURCE_CLASS_POSITION

added in[version 22.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
int SOURCE_CLASS_POSITION
```

The input source is an absolute positioning device not associated with a display (unlike[SOURCE_CLASS_POINTER](https://developer.android.com/reference/android/support/v4/view/InputDeviceCompat#SOURCE_CLASS_POINTER)). A[MotionEvent](https://developer.android.com/reference/android/view/MotionEvent.html)should be interpreted as absolute coordinates in device-specific surface units. Use[getMotionRange(int)](https://developer.android.com/reference/android/view/InputDevice.html#getMotionRange(int))to query the range of positions.

<br />

Constant Value: 8 (0x00000008)  

### SOURCE_CLASS_TRACKBALL

added in[version 22.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
int SOURCE_CLASS_TRACKBALL
```

The input source is a trackball navigation device. Examples:[SOURCE_TRACKBALL](https://developer.android.com/reference/android/support/v4/view/InputDeviceCompat#SOURCE_TRACKBALL). A[MotionEvent](https://developer.android.com/reference/android/view/MotionEvent.html)should be interpreted as relative movements in device-specific units used for navigation purposes. Pointer down/up indicates when the selection button is pressed/released. Use[getMotionRange(int)](https://developer.android.com/reference/android/view/InputDevice.html#getMotionRange(int))to query the range of motion.

<br />

Constant Value: 4 (0x00000004)  

### SOURCE_DPAD

added in[version 22.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
int SOURCE_DPAD
```

The input source is a DPad.

<br />

**See also:**

- [SOURCE_CLASS_BUTTON](https://developer.android.com/reference/android/support/v4/view/InputDeviceCompat#SOURCE_CLASS_BUTTON)

Constant Value: 513 (0x00000201)  

### SOURCE_GAMEPAD

added in[version 22.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
int SOURCE_GAMEPAD
```

The input source is a game pad. (It may also be a[SOURCE_JOYSTICK](https://developer.android.com/reference/android/support/v4/view/InputDeviceCompat#SOURCE_JOYSTICK)).

<br />

**See also:**

- [SOURCE_CLASS_BUTTON](https://developer.android.com/reference/android/support/v4/view/InputDeviceCompat#SOURCE_CLASS_BUTTON)

Constant Value: 1025 (0x00000401)  

### SOURCE_HDMI

added in[version 22.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
int SOURCE_HDMI
```

The input source is a device connected through HDMI-based bus. The key comes in through HDMI-CEC or MHL signal line, and is treated as if it were generated by a locally connected DPAD or keyboard.

<br />

Constant Value: 33554433 (0x02000001)  

### SOURCE_JOYSTICK

added in[version 22.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
int SOURCE_JOYSTICK
```

The input source is a joystick. (It may also be a[SOURCE_GAMEPAD](https://developer.android.com/reference/android/support/v4/view/InputDeviceCompat#SOURCE_GAMEPAD)).

<br />

**See also:**

- [SOURCE_CLASS_JOYSTICK](https://developer.android.com/reference/android/support/v4/view/InputDeviceCompat#SOURCE_CLASS_JOYSTICK)

Constant Value: 16777232 (0x01000010)  

### SOURCE_KEYBOARD

added in[version 22.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
int SOURCE_KEYBOARD
```

The input source is a keyboard. This source indicates pretty much anything that has buttons. Use[getKeyboardType()](https://developer.android.com/reference/android/view/InputDevice.html#getKeyboardType())to determine whether the keyboard has alphabetic keys and can be used to enter text.

<br />

**See also:**

- [SOURCE_CLASS_BUTTON](https://developer.android.com/reference/android/support/v4/view/InputDeviceCompat#SOURCE_CLASS_BUTTON)

Constant Value: 257 (0x00000101)  

### SOURCE_MOUSE

added in[version 22.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
int SOURCE_MOUSE
```

The input source is a mouse pointing device. This code is also used for other mouse-like pointing devices such as trackpads and trackpoints.

<br />

**See also:**

- [SOURCE_CLASS_POINTER](https://developer.android.com/reference/android/support/v4/view/InputDeviceCompat#SOURCE_CLASS_POINTER)

Constant Value: 8194 (0x00002002)  

### SOURCE_ROTARY_ENCODER

added in[version 26.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
int SOURCE_ROTARY_ENCODER
```

The input source is a rotating encoder device whose motions should be interpreted as akin to those of a scroll wheel.

<br />

**See also:**

- [SOURCE_CLASS_NONE](https://developer.android.com/reference/android/support/v4/view/InputDeviceCompat#SOURCE_CLASS_NONE)

Constant Value: 4194304 (0x00400000)  

### SOURCE_STYLUS

added in[version 22.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
int SOURCE_STYLUS
```

The input source is a stylus pointing device.

Note that this bit merely indicates that an input device is capable of obtaining input from a stylus. To determine whether a given touch event was produced by a stylus, examine the tool type returned by[getToolType(int)](https://developer.android.com/reference/android/view/MotionEvent.html#getToolType(int))for each individual pointer.

A single touch event may multiple pointers with different tool types, such as an event that has one pointer with tool type[TOOL_TYPE_FINGER](https://developer.android.com/reference/android/view/MotionEvent.html#TOOL_TYPE_FINGER)and another pointer with tool type[TOOL_TYPE_STYLUS](https://developer.android.com/reference/android/view/MotionEvent.html#TOOL_TYPE_STYLUS). So it is important to examine the tool type of each pointer, regardless of the source reported by[getSource()](https://developer.android.com/reference/android/view/MotionEvent.html#getSource()).

<br />

<br />

**See also:**

- [SOURCE_CLASS_POINTER](https://developer.android.com/reference/android/support/v4/view/InputDeviceCompat#SOURCE_CLASS_POINTER)

Constant Value: 16386 (0x00004002)  

### SOURCE_TOUCHPAD

added in[version 22.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
int SOURCE_TOUCHPAD
```

The input source is a touch pad or digitizer tablet that is not associated with a display (unlike[SOURCE_TOUCHSCREEN](https://developer.android.com/reference/android/support/v4/view/InputDeviceCompat#SOURCE_TOUCHSCREEN)).

<br />

**See also:**

- [SOURCE_CLASS_POSITION](https://developer.android.com/reference/android/support/v4/view/InputDeviceCompat#SOURCE_CLASS_POSITION)

Constant Value: 1048584 (0x00100008)  

### SOURCE_TOUCHSCREEN

added in[version 22.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
int SOURCE_TOUCHSCREEN
```

The input source is a touch screen pointing device.

<br />

**See also:**

- [SOURCE_CLASS_POINTER](https://developer.android.com/reference/android/support/v4/view/InputDeviceCompat#SOURCE_CLASS_POINTER)

Constant Value: 4098 (0x00001002)  

### SOURCE_TOUCH_NAVIGATION

added in[version 22.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
int SOURCE_TOUCH_NAVIGATION
```

The input source is a touch device whose motions should be interpreted as navigation events. For example, an upward swipe should be as an upward focus traversal in the same manner as pressing up on a D-Pad would be. Swipes to the left, right and down should be treated in a similar manner.

<br />

**See also:**

- [SOURCE_CLASS_NONE](https://developer.android.com/reference/android/support/v4/view/InputDeviceCompat#SOURCE_CLASS_NONE)

Constant Value: 2097152 (0x00200000)  

### SOURCE_TRACKBALL

added in[version 22.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
int SOURCE_TRACKBALL
```

The input source is a trackball.

<br />

**See also:**

- [SOURCE_CLASS_TRACKBALL](https://developer.android.com/reference/android/support/v4/view/InputDeviceCompat#SOURCE_CLASS_TRACKBALL)

Constant Value: 65540 (0x00010004)  

### SOURCE_UNKNOWN

added in[version 22.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
int SOURCE_UNKNOWN
```

The input source is unknown.

<br />

Constant Value: 0 (0x00000000)  
-

  ## Annotations

  - [ViewPager.DecorView](https://developer.android.com/reference/android/support/v4/view/ViewPager.DecorView)
-

  ## Interfaces

  - [ActionProvider.VisibilityListener](https://developer.android.com/reference/android/support/v4/view/ActionProvider.VisibilityListener)
  - [AsyncLayoutInflater.OnInflateFinishedListener](https://developer.android.com/reference/android/support/v4/view/AsyncLayoutInflater.OnInflateFinishedListener)
  - [LayoutInflaterFactory](https://developer.android.com/reference/android/support/v4/view/LayoutInflaterFactory)
  - [MenuItemCompat.OnActionExpandListener](https://developer.android.com/reference/android/support/v4/view/MenuItemCompat.OnActionExpandListener)
  - [NestedScrollingChild](https://developer.android.com/reference/android/support/v4/view/NestedScrollingChild)
  - [NestedScrollingChild2](https://developer.android.com/reference/android/support/v4/view/NestedScrollingChild2)
  - [NestedScrollingParent](https://developer.android.com/reference/android/support/v4/view/NestedScrollingParent)
  - [NestedScrollingParent2](https://developer.android.com/reference/android/support/v4/view/NestedScrollingParent2)
  - [OnApplyWindowInsetsListener](https://developer.android.com/reference/android/support/v4/view/OnApplyWindowInsetsListener)
  - [ScrollingView](https://developer.android.com/reference/android/support/v4/view/ScrollingView)
  - [TintableBackgroundView](https://developer.android.com/reference/android/support/v4/view/TintableBackgroundView)
  - [ViewPager.OnAdapterChangeListener](https://developer.android.com/reference/android/support/v4/view/ViewPager.OnAdapterChangeListener)
  - [ViewPager.OnPageChangeListener](https://developer.android.com/reference/android/support/v4/view/ViewPager.OnPageChangeListener)
  - [ViewPager.PageTransformer](https://developer.android.com/reference/android/support/v4/view/ViewPager.PageTransformer)
  - [ViewPropertyAnimatorListener](https://developer.android.com/reference/android/support/v4/view/ViewPropertyAnimatorListener)
  - [ViewPropertyAnimatorUpdateListener](https://developer.android.com/reference/android/support/v4/view/ViewPropertyAnimatorUpdateListener)
-

  ## Classes

  - [AbsSavedState](https://developer.android.com/reference/android/support/v4/view/AbsSavedState)
  - [AccessibilityDelegateCompat](https://developer.android.com/reference/android/support/v4/view/AccessibilityDelegateCompat)
  - [ActionProvider](https://developer.android.com/reference/android/support/v4/view/ActionProvider)
  - [AsyncLayoutInflater](https://developer.android.com/reference/android/support/v4/view/AsyncLayoutInflater)
  - [GestureDetectorCompat](https://developer.android.com/reference/android/support/v4/view/GestureDetectorCompat)
  - [GravityCompat](https://developer.android.com/reference/android/support/v4/view/GravityCompat)
  - [InputDeviceCompat](https://developer.android.com/reference/android/support/v4/view/InputDeviceCompat)
  - [LayoutInflaterCompat](https://developer.android.com/reference/android/support/v4/view/LayoutInflaterCompat)
  - [MarginLayoutParamsCompat](https://developer.android.com/reference/android/support/v4/view/MarginLayoutParamsCompat)
  - [MenuCompat](https://developer.android.com/reference/android/support/v4/view/MenuCompat)
  - [MenuItemCompat](https://developer.android.com/reference/android/support/v4/view/MenuItemCompat)
  - [MotionEventCompat](https://developer.android.com/reference/android/support/v4/view/MotionEventCompat)
  - [NestedScrollingChildHelper](https://developer.android.com/reference/android/support/v4/view/NestedScrollingChildHelper)
  - [NestedScrollingParentHelper](https://developer.android.com/reference/android/support/v4/view/NestedScrollingParentHelper)
  - [PagerAdapter](https://developer.android.com/reference/android/support/v4/view/PagerAdapter)
  - [PagerTabStrip](https://developer.android.com/reference/android/support/v4/view/PagerTabStrip)
  - [PagerTitleStrip](https://developer.android.com/reference/android/support/v4/view/PagerTitleStrip)
  - [PointerIconCompat](https://developer.android.com/reference/android/support/v4/view/PointerIconCompat)
  - [ScaleGestureDetectorCompat](https://developer.android.com/reference/android/support/v4/view/ScaleGestureDetectorCompat)
  - [VelocityTrackerCompat](https://developer.android.com/reference/android/support/v4/view/VelocityTrackerCompat)
  - [ViewCompat](https://developer.android.com/reference/android/support/v4/view/ViewCompat)
  - [ViewConfigurationCompat](https://developer.android.com/reference/android/support/v4/view/ViewConfigurationCompat)
  - [ViewGroupCompat](https://developer.android.com/reference/android/support/v4/view/ViewGroupCompat)
  - [ViewPager](https://developer.android.com/reference/android/support/v4/view/ViewPager)
  - [ViewPager.LayoutParams](https://developer.android.com/reference/android/support/v4/view/ViewPager.LayoutParams)
  - [ViewPager.SavedState](https://developer.android.com/reference/android/support/v4/view/ViewPager.SavedState)
  - [ViewPager.SimpleOnPageChangeListener](https://developer.android.com/reference/android/support/v4/view/ViewPager.SimpleOnPageChangeListener)
  - [ViewParentCompat](https://developer.android.com/reference/android/support/v4/view/ViewParentCompat)
  - [ViewPropertyAnimatorCompat](https://developer.android.com/reference/android/support/v4/view/ViewPropertyAnimatorCompat)
  - [ViewPropertyAnimatorListenerAdapter](https://developer.android.com/reference/android/support/v4/view/ViewPropertyAnimatorListenerAdapter)
  - [WindowCompat](https://developer.android.com/reference/android/support/v4/view/WindowCompat)
  - [WindowInsetsCompat](https://developer.android.com/reference/android/support/v4/view/WindowInsetsCompat)