Package icyllis.modernui.view
Class FocusFinder
java.lang.Object
icyllis.modernui.view.FocusFinder
The algorithm used for finding the next focusable view in a given direction
from a view that currently has focus.
-
Method Summary
Modifier and TypeMethodDescriptionfindNearestTouchable
(ViewGroup root, int x, int y, int direction, int[] deltas) Find the nearest touchable view to the specified view.final View
findNextFocus
(ViewGroup root, View focused, int direction) Find the next view to take focus in root's descendants, starting from the view that currently is focused.findNextFocusFromRect
(ViewGroup root, Rect focusedRect, int direction) Find the next view to take focus in root's descendants, searching from a particular rectangle in root's coordinates.findNextKeyboardNavigationCluster
(View root, View currentCluster, int direction) Find the root of the next keyboard navigation cluster after the current one.static FocusFinder
Get the focus finder for this thread.static void
Public for testing.
-
Method Details
-
getInstance
Get the focus finder for this thread. -
findNextFocus
Find the next view to take focus in root's descendants, starting from the view that currently is focused.- Parameters:
root
- Contains focused. Cannot be null.focused
- Has focus now.direction
- Direction to look.- Returns:
- The next focusable view, or null if none exists.
-
findNextFocusFromRect
public View findNextFocusFromRect(@NonNull ViewGroup root, @NonNull Rect focusedRect, int direction) Find the next view to take focus in root's descendants, searching from a particular rectangle in root's coordinates.- Parameters:
root
- Contains focusedRect. Cannot be null.focusedRect
- The starting point of the search.direction
- Direction to look.- Returns:
- The next focusable view, or null if none exists.
-
findNearestTouchable
public View findNearestTouchable(@NonNull ViewGroup root, int x, int y, int direction, int[] deltas) Find the nearest touchable view to the specified view.- Parameters:
root
- The root of the tree in which to searchx
- X coordinate from which to start the searchy
- Y coordinate from which to start the searchdirection
- Direction to lookdeltas
- Offset from the invalid input: '<'x, y> to the edge of the nearest view. Note that this array may already be populated with values.- Returns:
- The nearest touchable view, or null if none exists.
-
sort
Public for testing.
-