sandstone/ Virtual List
Provides Sandstone-themed virtual list components and behaviors.
import VirtualList from '@enact/sandstone/VirtualList';Members
VirtualListComponent
A Sandstone-styled scrollable and spottable virtual list component.
import VirtualList from '@enact/sandstone/VirtualList';Properties
Size of an item for the VirtualList; valid value is a number generally. For different item size, value is an object that has
minSizeandsizeas properties. If the direction for the list is vertical, itemSize means the height of an item. For horizontal, it means the width of an item.Usage:
<VirtualList itemSize={ri.scale(144)} />A callback function that receives a reference to the
scrollTofeature.Once received, the
scrollTomethod can be called as an imperative interface.The
scrollTofunction accepts the following parameters:{position: {x, y}} - Pixel value for x and/or y position
{align} - Where the scroll area should be aligned. Values are:
'left','right','top','bottom','topleft','topright','bottomleft', and'bottomright'.{index} - Index of specific item. (
0or positive integer) This option is available for onlyVirtualListkind.{node} - Node to scroll into view
{animate} - When
true, scroll occurs with animation. Whenfalse, no animation occurs.{focus} - When
true, attempts to focus item after scroll. Only valid when scrolling byindexornode.
Note: Only specify one of:
position,align,indexornodeExample:
// If you set cbScrollTo prop like below; cbScrollTo: (fn) => {this.scrollTo = fn;} // You can simply call like below; this.scrollTo({align: 'top'}); // scroll to the topDisable voice control feature of component.
Activates the component for voice control.
The voice control group label.
The layout direction of the list.
Default: 'vertical'Sets the hint string read when focusing the scroll thumb in the horizontal scroll bar.
Default: $L('scroll up or down with up down button')Specifies how to show horizontal scrollbar.
Default: 'auto'Enables scroll by hover on edges in scroll direction.
Unique identifier for the component.
When defined and when the
VirtualListis within a Panel, theVirtualListwill store its scroll position and restore that position when returning to thePanel.Prevents scroll by wheeling on the list.
Default: falseCalled when scrolling.
Passes
scrollLeft,scrollTop, andmoreInfo. It is not recommended to set this prop since it can cause performance degradation. UseonScrollStartoronScrollStopinstead.Called when scroll starts.
Passes
scrollLeft,scrollTop, andmoreInfo. You can get firstVisibleIndex and lastVisibleIndex from VirtualList withmoreInfo.Example:
onScrollStart = ({scrollLeft, scrollTop, moreInfo}) => { const {firstVisibleIndex, lastVisibleIndex} = moreInfo; // do something with firstVisibleIndex and lastVisibleIndex } render = () => ( <VirtualList ... onScrollStart={this.onScrollStart} ... /> )Called when scroll stops.
Passes
scrollLeft,scrollTop, andmoreInfo. You can get firstVisibleIndex and lastVisibleIndex from VirtualList withmoreInfo.Example:
onScrollStop = ({scrollLeft, scrollTop, moreInfo}) => { const {firstVisibleIndex, lastVisibleIndex} = moreInfo; // do something with firstVisibleIndex and lastVisibleIndex } render = () => ( <VirtualList ... onScrollStop={this.onScrollStop} ... /> )The ARIA role for the list.
Default: 'list'Specifies how to scroll.
Valid values are:
'translate','native'.
Default: 'native'The container id for Spotlight container.
It is a required prop to restore focus after remounting
VirtualList.For example, with this prop specified, when a
VirtualListis used in a Panel, theSpotlightwill store the last focus information based onSpotlightIdwhile navigating to another Panel. And theVirtualListwill restore the focus when it remounts while the navigation returns to thePanel.Sets the hint string read when focusing the scroll thumb in the vertical scroll bar.
Default: $L('scroll left or right with left right button')Specifies how to show vertical scrollbar.
Valid values are:
'auto','visible', and'hidden'.
Default: 'auto'When it's
trueand the spotlight focus cannot move to the given direction anymore by 5-way keys, a list is scrolled with an animation to the other side and the spotlight focus moves in wraparound manner.When it's
'noAnimation', the spotlight focus moves in wraparound manner as same as when it'strueexcept that a list is scrolled without an animation.Valid values are:
false,true, and'noAnimation'
Default: false
VirtualGridListComponent
A Sandstone-styled scrollable and spottable virtual grid list component.
import {VirtualGridList} from '@enact/sandstone/VirtualList';Properties
Size of an item for the VirtualGridList; valid value is an object that has
minWidthandminHeightas properties.Usage:
<VirtualGridList itemSize={{ minWidth: ri.scale(360), minHeight: ri.scale(540) }} />A callback function that receives a reference to the
scrollTofeature.Once received, the
scrollTomethod can be called as an imperative interface.The
scrollTofunction accepts the following parameters:{position: {x, y}} - Pixel value for x and/or y position
{align} - Where the scroll area should be aligned. Values are:
'left','right','top','bottom','topleft','topright','bottomleft', and'bottomright'.{index} - Index of specific item. (
0or positive integer) This option is available for onlyVirtualListkind.{node} - Node to scroll into view
{animate} - When
true, scroll occurs with animation. Whenfalse, no animation occurs.{focus} - When
true, attempts to focus item after scroll. Only valid when scrolling byindexornode.
Note: Only specify one of:
position,align,indexornodeExample:
// If you set cbScrollTo prop like below; cbScrollTo: (fn) => {this.scrollTo = fn;} // You can simply call like below; this.scrollTo({align: 'top'}); // scroll to the topDisable voice control feature of component.
Activates the component for voice control.
The voice control group label.
The layout direction of the list.
Default: 'vertical'Sets the hint string read when focusing the scroll thumb in the horizontal scroll bar.
Default: $L('scroll up or down with up down button')Specifies how to show horizontal scrollbar.
Default: 'auto'Enables scroll by hover on edges in scroll direction.
Unique identifier for the component.
When defined and when the
VirtualGridListis within a Panel, theVirtualGridListwill store its scroll position and restore that position when returning to thePanel.Removes affordance area on the list. Set this to
trueonly if the item needs to stick to the bottom for vertical direction, to the right for horizontal direction, when scrolling by keys.Default: falsePrevents scroll by wheeling on the list.
Default: falseCalled when scrolling.
Passes
scrollLeft,scrollTop, andmoreInfo. It is not recommended to set this prop since it can cause performance degradation. UseonScrollStartoronScrollStopinstead.Called when scroll starts.
Passes
scrollLeft,scrollTop, andmoreInfo. You can get firstVisibleIndex and lastVisibleIndex from VirtualGridList withmoreInfo.Example:
onScrollStart = ({scrollLeft, scrollTop, moreInfo}) => { const {firstVisibleIndex, lastVisibleIndex} = moreInfo; // do something with firstVisibleIndex and lastVisibleIndex } render = () => ( <VirtualGridList ... onScrollStart={this.onScrollStart} ... /> )Called when scroll stops.
Passes
scrollLeft,scrollTop, andmoreInfo. You can get firstVisibleIndex and lastVisibleIndex from VirtualGridList withmoreInfo.Example:
onScrollStop = ({scrollLeft, scrollTop, moreInfo}) => { const {firstVisibleIndex, lastVisibleIndex} = moreInfo; // do something with firstVisibleIndex and lastVisibleIndex } render = () => ( <VirtualGridList ... onScrollStop={this.onScrollStop} ... /> )The ARIA role for the list.
Default: 'list'Specifies how to scroll.
Valid values are:
'translate','native'.
Default: 'native'When it's true, the item snaps to center.
The container id for Spotlight container.
It is a required prop to restore focus after remounting
VirtualGridList.For example, with this prop specified, when a
VirtualGridListis used in a Panel, theSpotlightwill store the last focus information based onSpotlightIdwhile navigating to another Panel. And theVirtualGridListwill restore the focus when it remounts while the navigation returns to thePanel.Sets the hint string read when focusing the scroll thumb in the vertical scroll bar.
Default: $L('scroll left or right with left right button')Specifies how to show vertical scrollbar.
Valid values are:
'auto','visible', and'hidden'.
Default: 'auto'When it's
trueand the spotlight focus cannot move to the given direction anymore by 5-way keys, a list is scrolled with an animation to the other side and the spotlight focus moves in wraparound manner.When it's
'noAnimation', the spotlight focus moves in wraparound manner as same as when it'strueexcept that a list is scrolled without an animation.Valid values are:
false,true, and'noAnimation'
Default: false