美文网首页
Rust Druid之Flex布局

Rust Druid之Flex布局

作者: 前端家园 | 来源:发表于2021-10-10 10:53 被阅读0次

最近一直在学习Rust的Gui框架Druid,不得不说文档是真的少,国内文档就更少了,一切都靠自己摸索,下面主要介绍下Flex布局的用法,笔者也是在学习阶段,有错误的地方,请帮忙指出。

Flex::row()

创建一个新的水平堆栈,子元素从左到右水平布局。相当于css:

{
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: flex-start;
}

Flex::column()

创建一个新的垂直堆栈,子元素从上到下垂直布局。相当于css:

{
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
}

add_child

添加一个non-flex的子组件。

with_child

add_child的变体用法,便于链式调用,源码:

pub fn with_child(mut self, child: impl Widget<T> + 'static) -> Self {
  self.add_child(child);
  self
}

add_flex_child

添加一个flexible的子组件。

注意:即使元素是flexible,它默认也不会撑满所有空间,如果需要占满空间,可以调用expand_widthexpand_height方法。

with_flex_child

add_flex_child的变体用法,便于链式调用,源码:

pub fn with_flex_child(
  mut self,
  child: impl Widget<T> + 'static,
  params: impl Into<FlexParams>,
) -> Self {
  self.add_flex_child(child, params);
  self
}

fix_width

SizedBox包裹组件,并设置宽度

fix_height

SizedBox包裹组件,并设置高度

布局实践

实现一个顶部固定高度,底部自适应的效果,同时顶部内实现两边固定宽,中间自适应的三栏布局

fn build_app() -> impl Widget<u32> {
    let mut col = Flex::column().with_child(
        Flex::row()
            .with_child(Label::new("left"))
            .with_flex_child(Label::new("center").center(), 1.0)
            .with_child(Label::new("right"))
            .fix_height(100.0)
            .background(Color::rgb8(0, 0x77, 0x88)),
    );
    col.add_flex_child(Label::new("body").center().background(Color::RED), 1.0);
    col.debug_paint_layout()
}

效果:

image.png

欢迎关注公众号“前端家园”,一起探讨Rust或前端技术。

相关文章

  • Rust Druid之Flex布局

    最近一直在学习Rust的Gui框架Druid,不得不说文档是真的少,国内文档就更少了,一切都靠自己摸索,下面主要介...

  • ReactNative UI布局之flex

    ReactNative UI布局之flex flexDirection:决定flex的布局方向 justifyCo...

  • 网络编程(八)移动端布局(2)

    今天主要介绍一下移动端布局之flex布局。 一、 flex 布局体验 1.1 传统布局与flex布局的 1.2 初...

  • flex布局实现骰子六个面的写法

    1.flex实现骰子六个面之<布局一> 2.flex实现骰子六个面之<布局二> 3.flex实现骰子六个面之<布局...

  • flex布局

    认识flex布局 flex布局(Flexible 布局,弹性布局)开启了flex布局的元素叫flex contai...

  • flex:1 和 flex:auto区别

    如果还没有使用过flex,请先拜读下阮大大之Flex 布局教程:语法篇 在说flex:1和flex:auto区别之...

  • 初见FLEX

    FLEX布局 一种新的布局方式,flex布局 flex布局与方向无关 flex布局可以实现空间自动分配、自动对齐。...

  • Flex 布局教程

    一、Flex 布局教程:语法篇 Flex 布局教程:语法篇 二、Flex 布局教程:实例篇 Flex...

  • css flex布局详解

    css flex布局详解 css flex布局详解1css flex布局详解2

  • Flex

    阮一峰-Flex布局 阮一峰-Flex布局实例教程 Flex布局 块级元素 行内元素 注意,设为 Flex 布局...

网友评论

      本文标题:Rust Druid之Flex布局

      本文链接:https://www.haomeiwen.com/subject/qdkholtx.html