Incular logoIncular
API ReferenceNavigation & Scrolling

Sliver Headers

Persistent, floating, resizing, and natural headers with scroll behaviors.

use incular::prelude::*;

fn main() {
    let app = Application::new(|_cx| {
        Container::builder()
            .padding(EdgeInsets::all(24.0))
            .alignment(Alignment::CENTER)
            .child(
                CustomScrollView::new(vec![
                    Box::new(SliverToBoxAdapter::new(Text::new("Header")))
                        as Box<dyn Sliver>,
                    Box::new(SliverList::builder(30, |i| {
                        Text::new(format!("row {i}"))
                    })) as Box<dyn Sliver>,
                ]),
            )
            .build()
            .into()
    })
    .expect("valid application");
    incular::run(app).expect("run application");
}

SliverHeaderScrollBehavior: Scroll / Pinned (default) / Floating / FloatingPinned. SliverHeaderOverscrollBehavior: Translate (default) / Stretch (needs bouncing physics).

HeaderBehavior
SliverPersistentHeaderFixed height, optionally pinned
SliverAppBarTitle bar with expanded/collapsed heights
SliverFloatingHeaderReappears on reverse scroll, optional snap
SliverResizingHeaderAnimated min/max extents with scroll policy
SliverNaturalHeaderMeasures child like pinned/floating
PinnedHeaderSliverAlways pinned

Related: CustomScrollView.