Flutter Expanded和Flexible组件

简介: 在开发过程中,不能只想到Expanded,其实在很多场景中,Flexible都能很好地解决布局问题。

flutter Expanded和Flexible

Expanded

Expanded只能用于Row,Column布局,可以用来嵌套子view利用剩余空间对占位空间进行延展,Expanded父类是Flexible,相当于一个fit类型为tight的Flexible。

  • 参数flex,[int]:剩余空间分配占比
  • 参数child,[Widget]:子view

Flexible

Flexible只能用于Row,Column布局,可嵌套子view利用剩余空间对占位空间进行延展,也可以指定适应类型。
这里当参数fit==FlexFit.tight时,就相当于是Expanded布局,当参数fit==FlexFit.loose则为默认方式。

如下图,同样的标题和右边icon,Expanded和Flexible的表现
image.png

示例代码

Widget _testview1() {
    return Column(
      crossAxisAlignment: CrossAxisAlignment.start,
      children: [
        Text("1、如下标题内容用Expanded包裹:"),
        Divider(),
        Row(
          children: [
            Expanded(
              child: Text(
                '我是标题我是标题我是标题我',
                style: TextStyle(color: Colors.red),
                overflow: TextOverflow.ellipsis,
              ),
            ),
            Icon(
              Icons.menu,
              color: Colors.red,
            ),
          ],
        ),
        SizedBox(height: 20),
        Text("2、如下标题内容用Flexible包裹:"),
        Divider(),
        Row(
          children: [
            Flexible(
              child: Text(
                '我是标题我是标题我是标题我',
                style: TextStyle(color: Colors.red),
                overflow: TextOverflow.ellipsis,
              ),
            ),
            Icon(
              Icons.menu,
              color: Colors.red,
            ),
          ],
        )
      ],
    );
  }

在开发过程中,不能只想到Expanded,其实在很多场景中,Flexible都能很好地解决布局问题。

相关文章
|
3月前
|
传感器 缓存 监控
Stream 组件在 Flutter 中的应用场景有哪些?
Stream 组件在 Flutter 中的应用场景有哪些?
187 58
|
3月前
|
UED 开发者
Flutter|常用数据通信组件
Flutter|常用数据通信组件
110 49
|
1月前
|
UED 开发者 容器
Flutter&鸿蒙next 中的 Expanded 和 Flexible 使用技巧详解
在 Flutter 开发中,Expanded 和 Flexible 是两个常用的布局控件,用于管理 UI 布局的空间分配。Expanded 使子组件占据主轴上的所有剩余空间,而 Flexible 允许通过 flex 参数按比例分配空间。掌握两者的区别和使用场景,可以让你在构建复杂 UI 时更加得心应手。
105 1
|
1月前
Flutter 自定义组件继承与调用的高级使用方式
本文深入探讨了 Flutter 中自定义组件的高级使用方式,包括创建基本自定义组件、继承现有组件、使用 Mixins 和组合模式等。通过这些方法,您可以构建灵活、可重用且易于维护的 UI 组件,从而提升开发效率和代码质量。
131 1
|
1月前
|
开发工具 UED
Flutter&鸿蒙next中封装一个输入框组件
本文介绍了如何创建一个简单的Flutter播客应用。首先,通过`flutter create`命令创建项目;接着,在`lib`目录下封装一个自定义输入框组件`CustomInput`;然后,在主应用文件`main.dart`中使用该输入框组件,实现简单的UI布局和功能;最后,通过`flutter run`启动应用。本文还提供了后续扩展建议,如状态管理、网络请求和UI优化。
106 1
|
3月前
|
开发工具
Flutter-AnimatedWidget组件源码解析
Flutter-AnimatedWidget组件源码解析
181 60
|
1月前
|
Dart UED
Flutter用户交互组件
Flutter用户交互组件
27 2
|
2月前
|
存储 开发框架 开发者
flutter:代码存储&基本组件 (五)
本文档介绍了Flutter中的一些基本组件和代码示例,包括代码存储、基本组件如AppBar的简单使用、可滑动切换的标签栏、TextField的多种用法(如简单使用、登录页面、文本控制器的监听与使用、修饰等),以及如何实现点击空白区域隐藏键盘等功能。通过这些示例,开发者可以快速掌握在Flutter应用中实现常见UI元素的方法。
|
1月前
|
开发工具
Flutter&鸿蒙next中封装一个列表组件
Flutter&鸿蒙next中封装一个列表组件
43 0
|
3月前
|
开发者
Flutter|常用数据通信组件
Flutter|常用数据通信组件