belongs to Maven artifact com.android.support:customview:28.0.0-alpha1
ExploreByTouchHelper
public
abstract
class
ExploreByTouchHelper
extends AccessibilityDelegateCompat
java.lang.Object | ||
↳ | android.support.v4.view.AccessibilityDelegateCompat | |
↳ | android.support.v4.widget.ExploreByTouchHelper |
ExploreByTouchHelper is a utility class for implementing accessibility
support in custom View
s that represent a collection of View-like
logical items. It extends AccessibilityNodeProviderCompat
and
simplifies many aspects of providing information to accessibility services
and managing accessibility focus.
Clients should override abstract methods on this class and attach it to the
host view using setAccessibilityDelegate(View, AccessibilityDelegateCompat)
:
class MyCustomView extends View { private MyVirtualViewHelper mVirtualViewHelper; public MyCustomView(Context context, ...) { ... mVirtualViewHelper = new MyVirtualViewHelper(this); ViewCompat.setAccessibilityDelegate(this, mVirtualViewHelper); } @Override public boolean dispatchHoverEvent(MotionEvent event) { return mHelper.dispatchHoverEvent(this, event) || super.dispatchHoverEvent(event); } @Override public boolean dispatchKeyEvent(KeyEvent event) { return mHelper.dispatchKeyEvent(event) || super.dispatchKeyEvent(event); } @Override public boolean onFocusChanged(boolean gainFocus, int direction, Rect previouslyFocusedRect) { super.onFocusChanged(gainFocus, direction, previouslyFocusedRect); mHelper.onFocusChanged(gainFocus, direction, previouslyFocusedRect); } } mAccessHelper = new MyExploreByTouchHelper(someView); ViewCompat.setAccessibilityDelegate(someView, mAccessHelper);
Summary
Constants | |
---|---|
int |
HOST_ID
Virtual node identifier value for the host view's node. |
int |
INVALID_ID
Virtual node identifier value for invalid nodes. |
Public constructors | |
---|---|
ExploreByTouchHelper(View host)
Constructs a new helper that can expose a virtual view hierarchy for the specified host view. |
Public methods | |
---|---|
final
boolean
|
clearKeyboardFocusForVirtualView(int virtualViewId)
Attempts to clear keyboard focus from a virtual view. |
final
boolean
|
dispatchHoverEvent(MotionEvent event)
Delegates hover events from the host view. |
final
boolean
|
dispatchKeyEvent(KeyEvent event)
Delegates key events from the host view. |
final
int
|
getAccessibilityFocusedVirtualViewId()
|
AccessibilityNodeProviderCompat
|
getAccessibilityNodeProvider(View host)
Gets the provider for managing a virtual view hierarchy rooted at this View
and reported to |
int
|
getFocusedVirtualView()
This method was deprecated
in API level 24.1.0.
Use |
final
int
|
getKeyboardFocusedVirtualViewId()
|
final
void
|
invalidateRoot()
Notifies the accessibility framework that the properties of the parent view have changed. |
final
void
|
invalidateVirtualView(int virtualViewId)
Notifies the accessibility framework that the properties of a particular item have changed. |
final
void
|
invalidateVirtualView(int virtualViewId, int changeTypes)
Notifies the accessibility framework that the properties of a particular item have changed. |
final
void
|
onFocusChanged(boolean gainFocus, int direction, Rect previouslyFocusedRect)
Delegates focus changes from the host view. |
void
|
onInitializeAccessibilityEvent(View host, AccessibilityEvent event)
Initializes an |
void
|
onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfoCompat info)
Initializes an |
final
boolean
|
requestKeyboardFocusForVirtualView(int virtualViewId)
Attempts to give keyboard focus to a virtual view. |
final
boolean
|
sendEventForVirtualView(int virtualViewId, int eventType)
Populates an event of the specified type with information about an item and attempts to send it up through the view hierarchy. |
Protected methods | |
---|---|
abstract
int
|
getVirtualViewAt(float x, float y)
Provides a mapping between view-relative coordinates and logical items. |
abstract
void
|
getVisibleVirtualViews(List<Integer> virtualViewIds)
Populates a list with the view's visible items. |
abstract
boolean
|
onPerformActionForVirtualView(int virtualViewId, int action, Bundle arguments)
Performs the specified accessibility action on the item associated with the virtual view identifier. |
void
|
onPopulateEventForHost(AccessibilityEvent event)
Populates an |
void
|
onPopulateEventForVirtualView(int virtualViewId, AccessibilityEvent event)
Populates an |
void
|
onPopulateNodeForHost(AccessibilityNodeInfoCompat node)
Populates an |
abstract
void
|
onPopulateNodeForVirtualView(int virtualViewId, AccessibilityNodeInfoCompat node)
Populates an |
void
|
onVirtualViewKeyboardFocusChanged(int virtualViewId, boolean hasFocus)
Called when the focus state of a virtual view changes. |
Inherited methods | |
---|---|
![]()
android.support.v4.view.AccessibilityDelegateCompat
| |
![]()
java.lang.Object
|
Constants
HOST_ID
int HOST_ID
Virtual node identifier value for the host view's node.
Constant Value: -1 (0xffffffff)
INVALID_ID
int INVALID_ID
Virtual node identifier value for invalid nodes.
Constant Value: -2147483648 (0x80000000)
Public constructors
ExploreByTouchHelper
ExploreByTouchHelper (View host)
Constructs a new helper that can expose a virtual view hierarchy for the specified host view.
Parameters | |
---|---|
host |
View : view whose virtual view hierarchy is exposed by this helper
|
Public methods
clearKeyboardFocusForVirtualView
boolean clearKeyboardFocusForVirtualView (int virtualViewId)
Attempts to clear keyboard focus from a virtual view.
Parameters | |
---|---|
virtualViewId |
int : the identifier of the virtual view from which to
clear keyboard focus |
Returns | |
---|---|
boolean |
whether this virtual view actually cleared keyboard focus |
dispatchHoverEvent
boolean dispatchHoverEvent (MotionEvent event)
Delegates hover events from the host view.
Dispatches hover MotionEvent
s to the virtual view hierarchy when
the Explore by Touch feature is enabled.
This method should be called by overriding the host view's
dispatchHoverEvent(MotionEvent)
method:
@Override public boolean dispatchHoverEvent(MotionEvent event) { return mHelper.dispatchHoverEvent(this, event) || super.dispatchHoverEvent(event); }
Parameters | |
---|---|
event |
MotionEvent : The hover event to dispatch to the virtual view hierarchy. |
Returns | |
---|---|
boolean |
Whether the hover event was handled. |
dispatchKeyEvent
boolean dispatchKeyEvent (KeyEvent event)
Delegates key events from the host view.
This method should be called by overriding the host view's
dispatchKeyEvent(KeyEvent)
method:
@Override public boolean dispatchKeyEvent(KeyEvent event) { return mHelper.dispatchKeyEvent(event) || super.dispatchKeyEvent(event); }
Parameters | |
---|---|
event |
KeyEvent |
Returns | |
---|---|
boolean |
getAccessibilityFocusedVirtualViewId
int getAccessibilityFocusedVirtualViewId ()
Returns | |
---|---|
int |
the identifier of the virtual view that has accessibility focus
or INVALID_ID if no virtual view has accessibility
focus
|
getAccessibilityNodeProvider
AccessibilityNodeProviderCompat getAccessibilityNodeProvider (View host)
Gets the provider for managing a virtual view hierarchy rooted at this View
and reported to AccessibilityService
s
that explore the window content.
The default implementation behaves as
ViewCompat#getAccessibilityNodeProvider(View)
for the case of no accessibility delegate been set.
Parameters | |
---|---|
host |
View |
Returns | |
---|---|
AccessibilityNodeProviderCompat |
The provider. |
getFocusedVirtualView
int getFocusedVirtualView ()
This method was deprecated
in API level 24.1.0.
Use getAccessibilityFocusedVirtualViewId()
.
Returns the virtual view ID for the currently accessibility focused item.
Returns | |
---|---|
int |