Long-list reorder needs autoscroll and collapse
Aliases: edge autoscroll · drag collapse · off-screen drop
What it is
When the destination index sits outside the current viewport, long-press reorder must scroll the list as the finger nears an edge, and collapse a tall dragged row or intervening sections so the insertion gap stays visible. This is not generic drag autoscroll copied over: the payload itself occupies list height. Without collapse it hides the slot; without scrolling the off-screen index is unreachable.
Why it happens
Entering an edge band starts list motion away from the finger, speed scaled by how deep the finger sits in the band, while the floating row stays pinned to the contact. A thin band never fires; a fat one races the moment pickup occurs. Tall rows, expanded sections, and sticky headers eat the useful viewport. Collapsing the payload to a handle and temporarily folding sections along the path is a way to buy pixels for the gap, not a visual flourish. Both behaviors compensate for a destination that does not fit on one screen.
Studying it
Span the task over several viewport heights, not a handful of rows. Factors include band width, velocity curve, whether the payload collapses, and whether sections fold en route. Measures include time to a distant index, overshoot-and-return counts, drops into the wrong group, and how steadily the finger can rest in the band. In-viewport reorder tasks erase the autoscroll demand.
Where it stops holding
Short lists, pagers, and screens that already offer “move to top/bottom” gain less from autoscroll. In nested scrollers, edge motion can drag the outer page unless reorder locks it. Collapse without a restore animation looks like deletion. If autoscroll outruns the yield animation, drop forecasting dies. None of this replaces a button or keyboard path across pages.
Applying it
- Put accelerating edge bands at both ends of the list; freeze outer-page scrolling while reorder is active.
- Shrink an oversized payload to a compact handle and allow large sections to fold so the insertion gap remains on screen.
- Test with data that spans multiple screens: move the first item near the last, and record whether people must release midway or overshoot; replay whether the band fires too early.