API ReferenceNavigation & Scrolling
Sliver Overlap
Absorber and injector coordination for nested scroll views.
Shared-handle coordination for nested headers and bodies:
use incular::prelude::*;
fn main() {
let injector = SliverOverlapInjector::new();
println!("overlap: {}", injector.overlap_extent());
let app = Application::new(|_cx| {
Container::builder()
.padding(EdgeInsets::all(24.0))
.alignment(Alignment::CENTER)
.child(
CustomScrollView::new(vec![
Box::new(SliverOverlapAbsorber::new(
SliverToBoxAdapter::new(Text::new("Header")),
)) as Box<dyn Sliver>,
Box::new(SliverOverlapInjector::new()) as Box<dyn Sliver>,
]),
)
.build()
.into()
})
.expect("valid application");
incular::run(app).expect("run application");
}The absorber consumes overlap in the outer viewport; the injector re-applies it in the inner one, keeping pinned headers aligned.
| Type | Role |
|---|---|
SliverOverlapHandle | Shared coordination token |
SliverOverlapAbsorber | Consumes overlap upstream |
SliverOverlapInjector | Re-applies overlap downstream |
Related: CustomScrollView.