Incular logoIncular
API ReferenceLayout Values

WrapAlignment

Run and cross-run alignment for Wrap layouts.

use incular::prelude::*;

fn main() {
    let values = [
        WrapAlignment::Start,
        WrapAlignment::End,
        WrapAlignment::Center,
        WrapAlignment::SpaceBetween,
        WrapAlignment::SpaceAround,
        WrapAlignment::SpaceEvenly,
    ];
    let cross = [
        WrapCrossAlignment::Start,
        WrapCrossAlignment::End,
        WrapCrossAlignment::Center,
    ];
    println!("main: {} cross: {}", values.len(), cross.len());
}
VariantLayout
StartPack at the start (default)
EndPack at the end
CenterCenter as a group
SpaceBetweenEdges flush, even gaps
SpaceAroundEven gaps, half at edges
SpaceEvenlyFully even gaps

WrapCrossAlignment mirrors the same idea across runs: Start (default) / End / Center.

WrapAlignment serves both alignment (within a run) and run_alignment (across runs) on Wrap.

use incular::prelude::*;

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let app = Application::new(|_cx| {
        Container::builder()
            .padding(EdgeInsets::all(24.0))
            .alignment(Alignment::CENTER)
            .child(
                Wrap::new(Vec::<Widget>::from([
                    Text::new("one").into(),
                    Text::new("two").into(),
                    Text::new("three").into(),
                ]))
                .alignment(WrapAlignment::Center)
                .spacing(8.0)
                .run_spacing(8.0),
            )
            .build()
            .into()
    })?;
    incular::run(app)?;
    Ok(())
}

Related: Wrap.