
ReorderableScrollView is a powerful ScrollView extension plugin designed for ScrollView extension plugin for developers to implement drag-and-drop sorting in list or scroll views.Fluent Drag & Drop Support:The ReorderableScrollView class supports seamless drag-and-drop interaction, allowing users to reorder list items intuitively.Users can pick and drag items in the scroll view with smooth animation effects during the dragging process.When the user drags an item, the target position is dynamically calculated, and the item will smoothly transition to the new position when it is dropped.The drag-and-drop interaction is powerful and ensures that the list is reordered with smooth animation.Custom Sort Constraints:ReorderableScrollView allows you to implement custom sorting constraints. This means that you can define how and where the items in the list are dropped and sorted.With the OnItemSwitchFunc delegate, you can specify conditions for switching or sorting items when the user drags one item to another. This provides the flexibility to enforce any custom sorting behavior or restrictions.Usage ExamplesPrevent certain items from being swapped.Create custom rules for sorting items (for example, sorting items by custom attributes or restricting items to specific areas of the list).Item Groups With Header:You can group items in the scrolling view and assign custom titles to them. This is perfect for categorizing content and displaying it in an organized manner.Items in the list can be identified with a unique ID, and you can also add custom titles or group headings to visually distinguish between different categories of items.While the ReorderableScrollView focuses primarily on item reordering, it can also handle non-drag-and-drop items (such as headers) that do not participate in a drag-and-drop operation.Items can be grouped into sections by using the Spacer class to insert non-interactive placeholder elements that act as separators or headers between groups of items.Rich Animiation Effects:This class supports rich and fluid animations during interactions, including drag-and-drop operations.Animations are powered by DOTween for seamless transitions and effects. Sample animations includeItem Fade-In/Fade-Out: Items can be faded in and out as they are added or removed from the list.Item resizing: items smoothly transition between sizes to make reordering visually appealing.Item Position Transition: During drag-and-drop operations, items can be smoothly moved from their old position to a new one.Interval animation: When moving items, the interval bar is animated and resized to ensure smooth repositioning of the list items.Fully Documented Code:The code is well documented, with comments explaining the purpose of each method and variable. This makes it easy for developers to understand and modify the logic when needed.Key methods and features of the class, such as drag-and-drop logic, item sorting, and animation, are clearly explained.The class makes extensive use of LeanTouch for touch input, Cysharp.Threading.Tasks (UniTask) for asynchronous operations, and DOTween for animation, each with clear integrations and use cases.Delegated events for custom behaviors are provided throughout.Unity 2019.4 and above is supported.Dependency library:Dotween (HOTween v2) LeanTouch UniTask