Optimized ScrollView Adapter
Display large amounts of data efficiently through a List, Grid or Table, on any device!
Until quantum computers become mainstream, we need to optimize our ScrollViews!
Even if speed is not a concern for you, OSA still provides a plethora of shiny features, making it the ultimate replacement of Unity's built-in Scroll View.
Create your own customized implementation or get started in just 1 minute via OSA wizard and continue expanding according to your needs, guided by the provided demos.
Technical details
Highlights
• Works on any device
• Can handle 2 billion items (int.MaxValue-1)
• Variable data set
• Items can have different sizes
• Support for Content Size Fitter for items with unknown initial size
• TableView to allow displaying/modifying values from table-like data
• GridView with fixed or auto-adaptable number rows/columns
• Vertical/horizontal orientation and optional spacing/padding
• Custom rotation and scaling, including that of any CanvasScaler
• Configurable snapping
• Responsive to changes in viewport's size
• Multiple item types
• Change item size in real time (ex. animations), even if it's not visible
• Infinite looping, optional
• Smoothly scroll to a specific item
• Extensible source code provided
• Partially customizable recycling policy through provided callbacks
• Enhanced scrollbar functionalities via ScrollbarFixer, which adds auto-hide/hide-when-not-needed animations
• Dragging the items within the list(re-ordering), between 2 lists (transferring) or outside (orphaning)
• Scrolling speed can optionally accelerate with each subsequent drag to navigate faster within the list on demand
Goodies
• LazyList data structure optimized for large amounts of data
• AsyncBufferredDataSource class to aid in scenarios where data isn't readily available
• Content background scrolling effect, with optional parallax effect
• Gallery effect - middle items bigger than side items, or custom, including changes in rotation
• Nested ScrollViews are supported out of the box (disabled by default, for performance), including nesting a regular ScrollRect as parent/child
• Simple ExpandCollapseOnClick utility script in the example scenes that can be used to expand/shrink items on click
• Supports all Canvas spaces
• PullToRefresh-PullToLoadMore utility script
• DateTime picker pop-up utility which can be used from anywhere (one line of code)
• RemoteImageBehavior - a full solution for downloading images with caching support and adaptive queue management
• PackedGridLayout - a self-contained script for arranging items of different sizes in a given amount of space as efficiently as possible
Playmaker support
• At least Unity 2017.1 needed
• Lists, grids, date-time picker, content size fitter(items of variable sizes), large data sets.
• The demo scenes included do not have Playmaker-counterparts, though this may change in the future. Please watch the tutorial to see how to create Playmaker-ready OSAs through the OSA wizard instead