Added in API level 35

InputDevice.ViewBehavior


public static final class InputDevice.ViewBehavior
extends Object

java.lang.Object
   ↳ android.view.InputDevice.ViewBehavior


Provides information on how views processing MotionEvents generated by this input device should respond to the events. Use InputManager.getInputDeviceViewBehavior(int) to get an instance of the view behavior for an input device.

See an example below how a View can use this class to determine and apply the scrolling behavior for a generic MotionEvent.

public boolean onGenericMotionEvent(MotionEvent event) {
         InputManager manager = context.getSystemService(InputManager.class);
         ViewBehavior viewBehavior = manager.getInputDeviceViewBehavior(event.getDeviceId());
         // Assume a helper function that tells us which axis to use for scrolling purpose.
         int axis = getScrollAxisForGenericMotionEvent(event);
         int source = event.getSource();

         boolean shouldSmoothScroll =
                 viewBehavior != null && viewBehavior.shouldSmoothScroll(axis, source);
         // Proceed to running the scrolling logic...
     }
 

Summary

Public methods

boolean shouldSmoothScroll(int axis, int source)

Returns whether a view should smooth scroll when scrolling due to a MotionEvent generated by the input device.

Inherited methods

Object clone()

Creates and returns a copy of this object.

boolean equals(Object obj)

Indicates whether some other object is "equal to" this one.

void finalize()

Called by the garbage collector on an object when garbage collection determines that there are no more references to the object.

final Class<?> getClass()

Returns the runtime class of this Object.

int hashCode()

Returns a hash code value for the object.

final void notify()

Wakes up a single thread that is waiting on this object's monitor.

final void notifyAll()

Wakes up all threads that are waiting on this object's monitor.

String toString()

Returns a string representation of the object.

final void wait(long timeoutMillis, int nanos)

Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

final void wait(long timeoutMillis)

Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

final void wait()

Causes the current thread to wait until it is awakened, typically by being notified or interrupted.

Public methods

shouldSmoothScroll

Added in API level 35
public boolean shouldSmoothScroll (int axis, 
                int source)

Returns whether a view should smooth scroll when scrolling due to a MotionEvent generated by the input device.

Smooth scroll in this case refers to a scroll that animates the transition between the starting and ending positions of the scroll. When this method returns true, views should try to animate a scroll generated by this device at the given axis and with the given source to produce a good scroll user experience. If this method returns false, animating scrolls is not necessary.

If the input device does not have a MotionRange with the provided axis and source, this method returns false.

Parameters
axis int: the MotionEvent axis whose value is used to get the scroll extent.

source int: the InputDevice source from which the MotionEvent that triggers the scroll came.

Returns
boolean true if smooth scrolling should be used for the scroll, or false if smooth scrolling is not necessary, or if the provided axis and source combination is not available for the input device.