Incular logoIncular
API ReferenceLayout Values

MainAxisAlignment

Every main-axis distribution variant with layout examples.

use incular::prelude::*;

fn main() {
    let values = [
        MainAxisAlignment::Start,
        MainAxisAlignment::End,
        MainAxisAlignment::Center,
        MainAxisAlignment::SpaceBetween,
        MainAxisAlignment::SpaceAround,
        MainAxisAlignment::SpaceEvenly,
    ];
    println!("variants: {}", values.len());
    println!(
        "distributed: {}",
        MainAxisAlignment::SpaceBetween.is_distributed()
    );
}
VariantLayout
StartPack at the start (default)
EndPack at the end
CenterCenter as a group
SpaceBetweenFirst/last flush, even gaps between
SpaceAroundEven gaps with half-gaps at edges
SpaceEvenlyFully even gaps including edges
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(
                Row::builder()
                    .children(Vec::<Widget>::from([
                        Text::new("A").into(),
                        Text::new("B").into(),
                        Text::new("C").into(),
                    ]))
                    .main_axis_alignment(MainAxisAlignment::SpaceEvenly)
                    .spacing(8.0)
                    .build(),
            )
            .build()
            .into()
    })?;
    incular::run(app)?;
    Ok(())
}

Used by Row, Column, Flex.