Pager
Use pager to keep a fixed set of
page slots alive while changing which page is selected. It is included in day-pieces and
available through day::prelude::* without another dependency.
pager(state, busy, pages, settled) takes two signals, a vector of AnyPiece pages, and a
callback. PagerState
contains the ordered slot identities, selected slot, and presentation epoch. The order indexes
the fixed page vector. Changing the order or selection preserves the pages’ reactive scopes.
On UIKit, Android, and ArkUI, native paging gestures update busy and call the supplied callback with the settled slot
when a page settles. Increment the epoch when changing the presentation; stale completions
are rejected. Defer replacing slot contents until busy is false.
Other toolkits use a composed container. Only the selected slot in the active order is shown; inactive pages remain mounted, with their native subtree hidden from input and accessibility. This fallback supports programmatic selection but supplies no swipe gesture.
day::pager::support() reports Native or Emulated after the runtime starts. A dayscript
select event uses the logical position in the current order, while settled callbacks use the
stable slot identity. Applications should use the callback to update their selected state.
The navigation guide covers route and back-stack presentation. A pager does not create routes or manage navigation history.