Class FocusManager
Definition
- Namespace:
- Tizen.NUI
- Assembly:
- Tizen.NUI.dll
- API Level:
- 3
Provides the functionality of handling keyboard navigation and maintaining the two-dimensional keyboard focus chain.
It provides functionality of setting the focus and moving the focus in four directions( i.e., left, right, up, and down).
It also draws a highlight for the focused view and sends an event when the focus is changed.
C#Copypublic class FocusManager : BaseHandle, INotifyPropertyChanged, IDynamicResourceHandler, IElement, INameScope, IElementController, IDisposable
- Inheritance
- Implements
-
System.ComponentModel.INotifyPropertyChangedSystem.IDisposable
Properties
FocusGroupLoop
Gets or sets the status of whether the focus movement should be looped within the same focus group.
The focus movement is not looped by default.
Declaration
C#Copypublic bool FocusGroupLoop { get; set; }
Property Value
Type | Description |
---|---|
System.Boolean |
API Level: 3
FocusIndicator
Gets or sets the focus indicator view.
This will replace the default focus indicator view in the FocusManager and will be added to the focused view as a highlight.
Declaration
C#Copypublic View FocusIndicator { get; set; }
Property Value
Type | Description |
---|---|
View |
API Level: 3
Declaration
C#Copypublic static FocusManager Instance { get; }
Property Value
Type | Description |
---|---|
FocusManager |
API Level: 3
Methods
ClearFocus()
Clears the focus from the current focused view if any, so that no view is focused in the focus chain.
It will emit the FocusChanged event without the current focused view.
Declaration
C#Copypublic void ClearFocus()
API Level: 3
Declaration
C#Copypublic View GetCurrentFocusView()
Returns
Type | Description |
---|---|
View | A handle to the current focused view or an empty handle if no view is focused. |
API Level: 3
GetFocusGroup(View)
Returns the closest ancestor of the given view that is a focus group.
Declaration
C#Copypublic View GetFocusGroup(View view)
Parameters
Type | Name | Description |
---|---|---|
View | view | The view to be checked for its focus group. |
Returns
Type | Description |
---|---|
View | The focus group the given view belongs to or an empty handle if the given view. |
API Level: 3
Declaration
C#Copypublic bool IsFocusGroup(View view)
Parameters
Type | Name | Description |
---|---|---|
View | view | The view to be checked. |
Returns
Type | Description |
---|---|
System.Boolean | Whether the view is set as a focus group. |
API Level: 3
MoveFocus(View.FocusDirection)
Moves the focus to the next focusable view in the focus chain in the given direction (according to the focus traversal order).
Declaration
C#Copypublic bool MoveFocus(View.FocusDirection direction)
Parameters
Type | Name | Description |
---|---|---|
View.FocusDirection | direction | The direction of the focus movement. |
Returns
Type | Description |
---|---|
System.Boolean | True if the movement was successful. |
API Level: 3
Declaration
C#Copypublic void MoveFocusBackward()
API Level: 3
SetAsFocusGroup(View, Boolean)
Sets whether the view is a focus group that can limit the scope of the focus movement to its child views in the focus chain.
Layout controls set themselves as focus groups by default.
Declaration
C#Copypublic void SetAsFocusGroup(View view, bool isFocusGroup)
Parameters
Type | Name | Description |
---|---|---|
View | view | The view to be set as a focus group. |
System.Boolean | isFocusGroup | Whether to set the view as a focus group or not. |
API Level: 3
SetCurrentFocusView(View)
Moves the keyboard focus to the given view.
Only one view can be focused at the same time.
The view must be in the stage already and keyboard focusable.
Declaration
C#Copypublic bool SetCurrentFocusView(View view)
Parameters
Type | Name | Description |
---|---|---|
View | view | The view to be focused. |
Returns
Type | Description |
---|---|
System.Boolean | Whether the focus is successful or not. |
API Level: 3
SetCustomAlgorithm(FocusManager.ICustomFocusAlgorithm)
Provides the implementation of a custom focus algorithm interface to allow the application to define the focus logic.
Declaration
C#Copypublic void SetCustomAlgorithm(FocusManager.ICustomFocusAlgorithm arg0)
Parameters
Type | Name | Description |
---|---|---|
FocusManager.ICustomFocusAlgorithm | arg0 | The user's implementation of ICustomFocusAlgorithm. |
API Level: 3
Events
FocusChanged
The FocusGroupChanged will be triggered after the current focused view has been changed.
Declaration
C#Copypublic event EventHandler<FocusManager.FocusChangedEventArgs> FocusChanged
Event Type
Type | Description |
---|---|
System.EventHandler<FocusManager.FocusChangedEventArgs> |
API Level: 3
FocusedViewActivated
The FocusedViewActivated will be triggered when the current focused view has the enter key pressed on it.
Declaration
C#Copypublic event EventHandler<FocusManager.FocusedViewActivatedEventArgs> FocusedViewActivated
Event Type
Type | Description |
---|---|
System.EventHandler<FocusManager.FocusedViewActivatedEventArgs> |
API Level: 3
FocusGroupChanged
The FocusGroupChanged will be triggered when the focus group has been changed.
If the current focus group has a parent layout control, the FocusManager will make the best guess for the next focus group to move the focus to in the given direction (forward or backward).
If not, the application has to set the new focus.
Declaration
C#Copypublic event EventHandler<FocusManager.FocusGroupChangedEventArgs> FocusGroupChanged
Event Type
Type | Description |
---|---|
System.EventHandler<FocusManager.FocusGroupChangedEventArgs> |
API Level: 3
PreFocusChange
PreFocusChange will be triggered before the focus is going to be changed.
The FocusManager makes the best guess for which view to focus towards the given direction, but applications might want to change that.
By connecting with this event, they can check the proposed view to focus and return a different view if they wish.
This event is only triggered when the navigation key is pressed and KeyboardFocusManager tries to move the focus automatically.
It won't be emitted for focus movement by calling the SetCurrentFocusView directly.
Declaration
C#Copypublic event EventHandlerWithReturnType<object, FocusManager.PreFocusChangeEventArgs, View> PreFocusChange
Event Type
Type | Description |
---|---|
EventHandlerWithReturnType<System.Object, FocusManager.PreFocusChangeEventArgs, View> |