Incular logoIncular
API ReferenceNavigation & Scrolling

Sliver Groups

Main-axis, cross-axis, and constrained sliver composition.

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(SliverMainAxisGroup::new(vec![
                        Box::new(SliverToBoxAdapter::new(Text::new("A")))
                            as Box<dyn Sliver>,
                        Box::new(SliverToBoxAdapter::new(Text::new("B")))
                            as Box<dyn Sliver>,
                    ])) as Box<dyn Sliver>,
                    Box::new(SliverCrossAxisExpanded::new(
                        2,
                        SliverToBoxAdapter::new(Text::new("Wide")),
                    )) as Box<dyn Sliver>,
                ]),
            )
            .build()
            .into()
    })
    .expect("valid application");
    incular::run(app).expect("run application");
}

Groups compose multiple slivers along one axis inside a single viewport; constrained and expanded wrappers control cross-axis shares.

GroupComposition
SliverMainAxisGroupStack slivers along the main axis
SliverCrossAxisGroupArrange slivers across the axis
SliverCrossAxisExpandedProportional cross-axis share (flex >= 1)
SliverConstrainedCrossAxisMax cross extent cap

Related: CustomScrollView.