ھەر قانداق كۆۈنمە يۈز ئۈچۈن ئورۇنلاشتۇرما (Layout) نىڭ مۇھىملىقى ھەممىمىزگە ئايان،
نۆۋەتتە Flex layout چۈشىنىشلىك، ئاددىي، ئوخشىمىغان رازمىردىكى ئىكران قاتارلىقلارغا بولغان قوللىشى ياخشى، شۇڭا مەن ئۇنى ياقتۇرىمەن،
شۇڭا Meta (ئىلگىركى Facebook) نىڭ YogaLayout نى Rust دا سىناپ ئىشلىتىپ باقتىم،
YogaLayout بولسا C++ دا يېزىلغان Flex layout engine بولۇپ Flex layout نى يۇقىرى ئۈنۈمدە ھېسابلىيالايدۇ، بۇنداق ياخشى نەرسە بار يەردە يەنە ھەممىنى ئۆزىمىز قىلىپ كەتسەك بۇ Yoga layout قا ھاقارەت بولمامدۇ؟
مەسىلەن بىز بىر تال كۆزنەكنى تەقلىدلەپ باقايلى:
تۆەندىكىسى ئەسلى كودى:
fn yoga_layout() {
let mut window = yoga::Node::new();
window.set_width(yoga::StyleUnit::Point(800f32.into()));
window.set_height(yoga::StyleUnit::Point(600f32.into()));
let mut header = yoga::Node::new();
let mut content = yoga::Node::new();
let mut footer = yoga::Node::new();
window.insert_child(&mut header, 0);
window.insert_child(&mut content, 1);
window.insert_child(&mut footer, 2);
header.set_height(yoga::StyleUnit::Point(80f32.into()));
content.set_flex_grow(1f32);
footer.set_height(yoga::StyleUnit::Point(80f32.into()));
window.calculate_layout(800f32, 600f32, Direction::LTR);
println!("Window : {:?}", window.get_layout());
println!("Header : {:?}", header.get_layout());
println!("Content: {:?}", content.get_layout());
println!("Footer : {:?}", footer.get_layout());
}
تۆەندىكىسى نەتىجىسى: