Constructs a new TabControllerView.
Private
_Internal cache of tab definitions.
Private
activeActive NavControllerViews for each tab, keyed by tab ID.
IHosannaView
Optional
audioThis hint can be used in conjunction with the audio guide item
Optional
audioIndicates whether the element can receive focus.
These are the children that are rendered on screen in the tree structure of the view
Indicdates whether the view is a focus group which means it can have a focused child Otherwise it will be focused itself
The current navigatable view.
Optional
customOptional
focusedIndicates whether to hibernate views when changing tabs. Note - this is implemented, and has HUGE performance gains; BUT it's buggy and needs to be fixed. It will cause random artifacts in the UI. It is not recommended to use this flag until the bug is fixed.
Optional
initialIndicates whether auto-focus is enabled for the view.
Indicates whether the element is currently focused.
Indicates whether the view is managing visibility callbacks.
If true, this view has been presented in an AggregateViewController
Optional
onCallback invoked when a tab is hidden.
Optional
onCallback invoked when a tab is selected.
Optional
onOptional
onOptional
parentThe parent focusable element, if any.
Optional
selectedThe currently selected tab ID.
Private
Optional
selectedInternal state for the selected tab ID.
Indicates whether the view should be removed from the aggregate view.
These are the children that were created in getViews, in a flat strcuture - it contains EVERYTHING that we declared.
Optional
tabsList of tab definitions for the controller.
A temporary transition for the view.
Specifies the key used to determine the transition style for the view. This string can be used to select or identify different animation or transition effects when navigating between views or states within the application.
The IHosannaView subclass that created us in getViews
Indicates whether the navigatable entity is visible.
Transition state for the aggregate view.
Transition state for the aggregate view.
Children
Optional
mountTarget: IHosannaView<ViewState>View Creation
Adds a new tab to the TabController.
The tab definition to add.
This TabControllerView instance.
Applies pending state changes to the TabController.
Optional
nextState: ViewStateThe next state to apply.
Builds the view and attaches it to the view owner.
Optional
mountTarget: IHosannaView<ViewState>The target to mount the view.
The built view or undefined.
Optional
options: IScreenDismissOptionsOptional
args: Record<string, unknown>Optional
cancellationToken: HsCancellationTokenAsync Support
Optional
args: Record<string, unknown>Optional
callback: AsyncCommandEventCallbackResolves the next focusable element in the given direction.
The event containing details about the focus transition.
The next focusable element, or undefined if none exists.
Audio guide support
Measurement
Rendererers
Hibernates the view and its subviews by releasing native renderers and setting the view phase to Hibernating.
Hides the specified navigatable view.
The view to hide.
The view to be added as a subview.
index of the child in the parent view, -1 means add to end
Focus
Called when the navigatable entity is shown.
DO NOT CALL THIS METHOD DIRECTLY DO NOT OVERRIDE IT
Called after the navigatable entity has been added to an aggregate view.
The aggregate view to which the entity has been added.
Called after the navigatable entity has been removed from an aggregate view.
The aggregate view from which the entity has been removed.
Called when the navigatable entity is hidden.
Called when the view gains focus.
Handles a key event.
The key event to handle.
True if the key event was handled, false otherwise.
Called before the navigatable entity is added to an aggregate view.
The aggregate view to which the entity will be added.
This method is called before applying state changes to the view. It is used to perform any necessary preparations before the state changes are applied.
Called before the navigatable entity is removed from an aggregate view.
The aggregate view from which the entity will be removed.
Presents a new screen in the navigation stack or as a dialog.
The screen to be presented, represented by a ViewStruct<ViewState>
.
Optional
options: IScreenPresentationOptionsOptional presentation options.
If true, the screen will be presented as a dialog.
If true, the screen transition will be animated.
IReusable implementation
Removes a tab from the TabController.
The ID of the tab to remove.
Switches to the specified tab. Lazily initializes the tab's NavController if needed.
The ID of the tab to select.
Navigatable View
Transitions to the specified navigatable view.
The view to transition to.
Optional
animated: boolean = trueWhether the transition should be animated.
Wakes up the view and its subviews by reserving native renderers and setting the view phase to Mounted.
TabControllerView manages a set of tabs, each with its own navigation stack.
Remarks
Example