Hosanna UI API v1.30.2-next
    Preparing search index...

    ScrollViewView is a composite view for displaying scrollable content.

    • Supports vertical and horizontal scrolling.
    • Allows custom alignment, viewport size, and animated scrolling.
    • Handles focus navigation and restoration.
    ScrollView([
    VGroup(
    episodes.map((item: IProductContentItem, index: number) => {
    return ProductEpisodeCard()
    })
    )
    .id('episodeList')
    .itemSpacing(30)
    ])

    Hierarchy (View Summary)

    Index

    Constructors

    Properties

    Accessors

    Methods

    addChild addChildren addRendererToParentViewRenderer addSubView animateToChild animateToPosition animateViews applyExternalScrollExtentStrategy applyIdsToViewStructs applyInitialState applyLayoutStateToNativeRenderer applyOverscrollExtent applyStateChanges bottomVerticalPositionHandler bringChildInFrontOfChild bringChildToFront buildView canChangeOrientation canMeasureBounds centerHorizontalPositionHandler centerVerticalPositionHandler clampExternalScrollPosition clearErrorByErrorField clearErrors configureAudioGuideItem containsChild createDataEvent customHorizontalPositionHandler customVerticalPositionHandler defineHorizontalPosition defineVerticalPosition dismiss dispatch dispatchAction dispatchAsync dispatchSelection findNextFocusable findNextFocusableView findNextFocusableViewByDirection floatingHorizontalPositionHandler floatingVerticalPositionHandler getAnimationPropsForStateProperty getAudioGuideItem getBounds getBoundsInApp getBoundsInParent getChangedField getChildView getCustomData getEffectiveViewportHeight getEffectiveViewportWidth getExternalScrollBounds getField getFirstFocusableChild getFlattenedStructs getFlattenedStructsById getFocusedChildToContainerRelativeShifts getNavController getNearestClippingViewportSize getObservableField getPointInLocalCoordinates getScrollableContentBounds getSubView getSubViewRenderer handleOnFocusedChildChangeEvent hibernateView inflateViewStructs insertChild insertChildAfterOtherChild insertChildBeforeOtherChild insertSubView invalidateLayout invalidateParentLayout isDescendantOf isInFocusChain layoutAt layoutChildren leftHorizontalPositionHandler markStateDirtyForViewManager needToRestorePosition noneHorizontalPositionHandler noneVerticalPositionHandler notifyOnFocusedChildChange onAppear onAppearAgain onBlur onDidAddToAggregateView onDidAppearInAggregateView onDidChangeOrientation onDidReappearInAggregateView onDidRemoveFromAggregateView onDisappear onDisappearFromAggregateView onFirstAppear onFocus onInputEvent onMount onUnmount onWillAddToAggregateView onWillApplyStateChanges onWillChangeOrientation onWillRemoveFromAggregateView onWillReuse performViewManagerLayoutChildren predefinedHorizontalPositionHandler predefinedVerticalPositionHandler present reconcileChildren recycle registerControlWithErrorMessage registerControlWithKnownError release removeChild removeSubView render requestFocusedChild reset resolveFocusEntryTarget restorePosition rightHorizontalPositionHandler scrollTo sendChildBehindOtherChild sendChildToBack setChildIndex setError setExternalScrollOffset setField setLayoutField setObservableField setShowOnScreen setState showDialog storeDataForRestorePosition topVerticalPositionHandler unobserveObservableObjects wakeView

    Constructors

    Properties

    __isMemoizedStateValid: boolean = false
    _cacheKey: string = ''
    _hid: string
    _isInFocusChain: boolean = false
    activeAnimation?: HosannaViewAnimator

    If present, an animation currently targeting this view (or its subviews).

    activeStyleViewStatus: ViewStatus = ViewStatus.Normal
    aggregateView: undefined | IAggregateView.IAggregateView

    IHosannaView


    animationDuration: number = 500

    Duration of scroll animations in ms.

    Animator for smooth scrolling.

    appConfig: IAppConfig
    audioGuideHint?: string = ''

    This hint can be used in conjunction with the audio guide item

    audioGuideItem?: string | IAudioGuideItem
    autoScroll: boolean = true

    Enables or disables auto-scrolling to focused child.

    calculatedHeight: number = 0
    calculatedWidth: number = 0
    calculatedX: number = 0
    calculatedY: number = 0
    canReceiveFocus: boolean = true

    Indicates whether the element can receive focus.

    children: BaseView.BaseView<ViewState, ISGNGroup>[] = []

    These are the children that are rendered on screen in the tree structure of the view

    childrenChanged: boolean = false
    clippingRect: number[] = ...
    compositeView: boolean = true

    Indicdates whether the view is a focus group which means it can have a focused child Otherwise it will be focused itself

    currentScrollPosition: [number, number] = ...

    Initial position of scrollable internal group.

    customData?: unknown
    customHorizontalPositionCallback?: (event: FocusChildChangeEvent) => number

    Callback for custom horizontal positioning.

    customPositionX: number = 0

    Custom horizontal position for children.

    customPositionY: number = 0

    Custom vertical position for children.

    customVerticalPositionCallback?: (event: FocusChildChangeEvent) => number

    Callback for custom vertical positioning.

    defaultValues: Partial<T> = {}
    eventHandlers: Record<string, Function> = {}
    focusedChildId?: string
    focusId: string = ''
    height: number = 0
    horizontalAlignment: ScrollHorizontalAlignment = ScrollHorizontalAlignment.Left

    Horizontal alignment of scrollable content.

    id: string = ''
    includeInLayout: boolean = true
    initialFocusId: string = ''
    instancePool: IInstancePool
    isFocused: boolean = false

    Indicates whether the element is currently focused.

    isLayoutDirty: boolean = false
    isPresented: boolean = false

    If true, this view has been presented in an AggregateViewController

    isSkeleton: boolean = false
    isWaking: boolean = false
    keyboardAvoidance: "none" | "auto" = 'auto'

    Automatic keyboard avoidance opt-out. When a software keyboard appears, the framework translates the visible screen to keep the editing input in view; set 'none' on the screen or the input to disable. Plain field (not reactive) — checked at keyboard-show time.

    lastFocusedChild: undefined | IHosannaView<ViewState> = undefined

    Last focused child view.

    nativeGlass: undefined | SGNativeGlassEffect = undefined
    nextViewId: number = 0
    nodePool: INodePool
    onAnimateToPosition?: (translation: [number, number], duration: number) => void

    Optional callback for custom animation to position.

    opacity: number = 1.0
    originalContainerPosition: undefined | [number, number] = undefined

    Original container position for restoration.

    parent?: IHosannaView<ViewState> = undefined
    partialRendererHibernatedState: Partial<T> = {}
    pendingFocusEvent: undefined | FocusChildChangeEvent = undefined

    Pending focus event for deferred scrolling.

    pivotViewToRestorePosition: undefined | IHosannaView<ViewState> = undefined

    View to restore scroll position to.

    rotation: number = 0
    scale: number[] = ...
    scaleRotateCenter: number[] = ...
    scrollableGroup: undefined | ISGNGroup
    scrollablePositionX: undefined | number = undefined
    scrollablePositionY: undefined | number = undefined
    scrollToChild?: IHosannaView<ViewState>

    Child to scroll to.

    staticType: ViewStaticType = ViewStaticType.None
    subViews: BaseView.BaseView<ViewState, ISGNGroup>[] = []

    These are the children that were created in getViews, in a flat strcuture - it contains EVERYTHING that we declared.

    subViewsChanged: boolean = false
    translation: number[] = ...
    verticalAlignment: ScrollVerticalAlignment = ScrollVerticalAlignment.Top

    Vertical alignment of scrollable content.

    viewOwner: IHosannaView<ViewState>

    The IHosannaView subclass that created us in getViews

    viewportHeight: number = 0

    Height of the scrollable viewport.

    viewportWidth: number = 0

    Width of the scrollable viewport.

    viewStatus: ViewStatus = ViewStatus.Normal
    visible: boolean = true

    Indicates whether the navigatable entity is visible.

    wasScrolled: boolean = false

    Whether the view was scrolled.

    width: number = 0

    Accessors

    • get _rendereredTranslation(): [number, number]

      Returns [number, number]

    • set _rendereredTranslation(value: [number, number]): void

      Parameters

      • value: [number, number]

      Returns void

    • get renderer(): undefined | R

      Returns undefined | R

    • set renderer(value: undefined | R): void

      Parameters

      • value: undefined | R

      Returns void

    • get viewPhase(): ViewPhase

      Returns ViewPhase

    • set viewPhase(phase: ViewPhase): void

      Parameters

      Returns void

    Methods


    • Children


      Parameters

      • child: IHosannaView<ViewState>
      • OptionalmountTarget: IHosannaView<ViewState>

      Returns void

    • Parameters

      • children: IHosannaView<ViewState>[]

      Returns void

    • Adds the renderer to the parent view's renderer.

      Parameters

      • parent: undefined | IHosannaView<ViewState>

        The parent view.

      • childIndex: number = -1

        The index at which to add the child.

      Returns void


    • View Creation


      Parameters

      • view: IHosannaView<ViewState>

      Returns void

    • Animates the scroll view to bring a child into view.

      Parameters

      • child: IHosannaView<ViewState>

        The child view to scroll to.

      • duration: number

        The animation duration in ms.

      Returns void

    • Will be deprecated, use scrollTo instead Animates the scroll view to the specified position over a given duration. In this method, the position is considered absolute, not relative to the current view translation.

      Parameters

      • position: [number, number]

        The target position as a tuple [x, y] to scroll to.

      • duration: number

        The duration of the animation in milliseconds.

      Returns void

    • Parameters

      Returns [number, number]

    • Parameters

      • nextViewStructs: undefined | ViewStruct<ViewState>[]
      • parentId: string = ""
      • level: number = 0

      Returns void

    • Parameters

      • value: number
      • min: number
      • max: number

      Returns number

    • Parameters

      • OptionalnextState: ScrollViewState

      Returns void

    • Parameters

      • event: FocusChildChangeEvent

      Returns number

    • Parameters

      • child: IHosannaView<ViewState>
      • otherChild: IHosannaView<ViewState>

      Returns void

    • Parameters

      • child: IHosannaView<ViewState>

      Returns void

    • Builds the view and attaches it to the view owner.

      Parameters

      • struct: ViewStruct<ViewState>
      • OptionalmountTarget: IHosannaView<ViewState>

        The target to mount the view.

      • childIndex: number = -1

      Returns undefined | IHosannaView<ViewState>

      The built view or undefined.

    • Parameters

      • _event: HosannaOrientationChangeEvent

      Returns boolean

    • Parameters

      • event: FocusChildChangeEvent

      Returns number

    • Parameters

      • event: FocusChildChangeEvent

      Returns number

    • Parameters

      • x: number
      • y: number

      Returns [number, number]

    • Parameters

      • errorField: IDebugErrorFieldMap

      Returns void

    • Parameters

      • child: IHosannaView<ViewState>

      Returns boolean

    • Parameters

      • event: FocusChildChangeEvent

      Returns number

    • Parameters

      • event: FocusChildChangeEvent

      Returns number

    • Parameters

      • event: FocusChildChangeEvent

      Returns number

    • Parameters

      • event: FocusChildChangeEvent

      Returns number

    • Parameters

      • Optionaloptions: IScreenDismissOptions

      Returns void

    • Type Parameters

      • T

      Parameters

      • command: string
      • Optionalargs: Record<string, unknown>
      • OptionalcancellationToken: HsCancellationToken
      • OptionaltaskId: string

      Returns HsPromise<T>

    • Parameters

      • event: FocusChildChangeEvent

      Returns number

    • Parameters

      • event: FocusChildChangeEvent

      Returns number


    • Measurement


      Returns I2DRectangle

    • Parameters

      • otherView: IHosannaView<ViewState>

      Returns I2DRectangle

    • Type Parameters

      • T extends IHosannaView<ViewState>

      Parameters

      • id: string

      Returns undefined | T

    • Returns number

    • Returns number

    • Returns { maxX: number; maxY: number; minX: number; minY: number }

    • Type Parameters

      • K extends keyof ScrollViewState

      Parameters

      • field: K

      Returns any

    • Returns the first focusable child view.

      Returns undefined | IHosannaView<ViewState>

      The first focusable child view or undefined if no focusable children are found.

    • Parameters

      • nextStructs: ViewStruct<ViewState>[]

      Returns ViewStruct<ViewState>[]

    • Parameters

      • nextStructs: ViewStruct<ViewState>[]
      • map: Record<string, ViewStruct<ViewState>> = {}
      • idList: { childIndex: number; id: string }[] = []

      Returns {
          idList: { childIndex: number; id: string }[];
          mappedNextStructs: Record<string, ViewStruct<ViewState>>;
      }

    • Parameters

      • event: FocusChildChangeEvent

      Returns [number, number]

    • Returns undefined | INavController

    • Returns [number, number]

    • Parameters

      • point: { x: number; y: number }

      Returns { x: number; y: number }

    • Returns undefined | { maxX: number; maxY: number; minX: number; minY: number }


    • Rendererers


      Type Parameters

      • T extends IHosannaView<ViewState>

      Parameters

      • id: string
      • isDeepSearch: boolean = false

      Returns undefined | T

    • Handles a focus change event and animates to the new child.

      Parameters

      • event: FocusChildChangeEvent

        The focus child change event.

      Returns void

    • Hibernates the view and its subviews by releasing native renderers and setting the view phase to Hibernating.

      Returns void

    • Parameters

      • nextViewStructs: ViewStruct<ViewState>[]

      Returns void

    • Parameters

      • child: IHosannaView<ViewState>
      • OptionalmountTarget: IHosannaView<ViewState>
      • index: number = -1

      Returns void

    • Parameters

      • child: IHosannaView<ViewState>
      • otherChild: IHosannaView<ViewState>

      Returns void

    • Parameters

      • child: IHosannaView<ViewState>
      • otherChild: IHosannaView<ViewState>

      Returns void

    • Parameters

      • view: IHosannaView<ViewState>

        The view to be added as a subview.

      • index: number = -1

        index of the child in the parent view, -1 means add to end

      Returns void

    • Parameters

      • view: IHosannaView<ViewState>

      Returns boolean

    • Parameters

      • x: number
      • y: number
      • parentWidth: number
      • parentHeight: number

      Returns void

    • Parameters

      • event: FocusChildChangeEvent

      Returns number

    • Parameters

      • focusTarget: IHosannaView<ViewState>

      Returns boolean

    • Parameters

      • event: FocusChildChangeEvent

      Returns number

    • Parameters

      • event: FocusChildChangeEvent

      Returns number

    • Handles changes to the focused child and triggers scrolling if needed.

      Parameters

      • event: FocusChildChangeEvent

        The focus child change event.

      Returns void

    • Returns void

      Prefer BaseView.onDidAppearInAggregateView / BaseView.onDidReappearInAggregateView when shown via an aggregate transition. The framework still invokes this for other paths until migrated.

      IHosannaView.onAppear

    • Called when this view becomes the visible top again after having been covered by another screen on the same NavController (same transition finish as onAppear, immediately after it).

      Returns void

      Prefer overriding onDidReappearInAggregateView; default implementation chains from it.

    • DO NOT CALL THIS METHOD DIRECTLY DO NOT OVERRIDE IT

      Returns void

    • Parameters

      • _event: HosannaOrientationChangeEvent

      Returns void

    • Returns void

      Prefer BaseView.onDisappearFromAggregateView when leaving an aggregate context during a transition. The framework still invokes this for other paths until migrated.

      IHosannaView.onDisappear

    • Called when this view becomes the visible top of a NavController stack for the first time for that controller (same transition finish as onAppear, immediately after it).

      Returns void

      Prefer overriding onDidAppearInAggregateView; default implementation chains from it.

    • Handles focus events for the scroll view.

      Returns void

    • Handles mount lifecycle event.

      Parameters

      • parent: IHosannaView<ViewState> | BaseApp.BaseApp

        The parent view or app.

      • childIndex: number = -1

        The index at which to mount.

      Returns void

    • 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.

      Returns void

    • Parameters

      • _event: HosannaOrientationChangeEvent

      Returns void

    • Called by InstancePool.get() before a pooled instance is handed out. Restores the view to a construction-equivalent state so that stale lifecycle data (focus, viewStatus, old text, dirty flags, etc.) from the previous owner does not bleed into the new one.

      Class-default

      Returns void

      values (captured on first construction into the InstancePool per-class-name registry) are placed into pendingState with state left empty — matching a freshly-constructed view. This guarantees that every subsequent setField call (in applyInitialState) detects a difference against the empty state and pushes the value into pendingState, so applyLayoutStateToNativeRenderer applies ALL layout props (opacity, visible, translation, …) to the newly-acquired renderer even when the logical value equals the class default.

    • Parameters

      • event: FocusChildChangeEvent

      Returns number

    • Parameters

      • event: FocusChildChangeEvent

      Returns number

    • Presents a new screen in the navigation stack or as a dialog.

      Parameters

      • screen: ViewStruct<ViewState>

        The screen to be presented, represented by a ViewStruct<ViewState>.

      • Optionaloptions: IScreenPresentationOptions

        Optional presentation options.

        • isDialog

          If true, the screen will be presented as a dialog.

        • animated

          If true, the screen transition will be animated.

      Returns void

    • Parameters

      • nextStructs: ViewStruct<ViewState>[]

      Returns void


    • IReusable implementation


      Parameters

      • initialState: Partial<ScrollViewState>

      Returns void

    • Parameters

      • message: string
      • errorField: IDebugErrorFieldMap

      Returns void

    • Parameters

      • message: string
      • errorField: IDebugErrorFieldMap

      Returns void

    • Parameters

      • child: IHosannaView<ViewState>

      Returns void

    • Parameters

      • view: IHosannaView<ViewState>

      Returns void

    • Parameters

      • changes: Partial<T>

      Returns void

    • Sets which direct child this composite prefers on the next focus cascade, or moves focus to that child if this view is already in the focus chain.

      • First / Last: first or last direct child in children order with canReceiveFocus && visible.
      • Default: clears focusedChildId only (next cascade uses getInitialFocusId()); does not call setFocus.
      • Specific: same behavior as setFocusedSubview for a known child id.

      Parameters

      • target: ChildFocusTarget
      • OptionalchildId: string

      Returns void

    • Resets the scroll view to the initial state.

      Returns void

    • Returns void

    • Parameters

      • event: FocusChildChangeEvent

      Returns number

    • Animates the scroll view to the specified position over a given duration. In this method, the position is considered relative to the current view translation.

      Parameters

      • position: [number, number]

        The target position as a tuple [x, y] to scroll to.

      • duration: number

        The duration of the animation in milliseconds.

      Returns void

    • Parameters

      • child: IHosannaView<ViewState>
      • otherChild: IHosannaView<ViewState>

      Returns void

    • Parameters

      • child: IHosannaView<ViewState>

      Returns void

    • Changes the visual z-order of a child by moving it to a new index. Higher indices render on top. Updates both the children array and the renderer. Requires removeChild before insertChild because the SG node's insertChild always adds (splices in) and does not move; calling it on an already-present child would duplicate.

      Parameters

      • child: IHosannaView<ViewState>
      • newIndex: number

      Returns void

    • Parameters

      • errorObj: IDebugErrorObject

      Returns void

    • Sets the scroll position directly for external scroll (touch drag, mouse wheel). Stops any running animation and applies the position instantly.

      Parameters

      Returns void

    • Sets a field value on the scroll view.

      Type Parameters

      • K extends keyof ScrollViewState

      Parameters

      • field: K

        The field name.

      • value: ScrollViewState[K]

        The value to set.

      Returns void

    • Type Parameters

      • K extends keyof ScrollViewState

      Parameters

      • field: K
      • value: ScrollViewState[K]

      Returns void

    • Parameters

      • key: string
      • newVal: unknown

      Returns void


    • Navigatable View


      Parameters

      • shown: boolean

      Returns void

    • Parameters

      • state: Partial<T>

      Returns void

    • Parameters

      • dialog: ViewStruct<ViewState>

      Returns void

    • Parameters

      • focusTarget: IHosannaView<ViewState>

      Returns void

    • Parameters

      • event: FocusChildChangeEvent

      Returns number

    • Wakes up the view and its subviews by reserving native renderers and setting the view phase to Mounted.

      Returns void