【flutter】Expanded组件

Flutter中Padding、Row 、Column 、Expanded 组件详解 本文介绍了Flutter中常用的布局组件及其使用方法。Padding组件用于处理容器与子元素间距,通过EdgeInsets设置边距值。Row和Column组件分别实现水平和垂直布局,通过mainAxisAlignment和crossAxisAlignment属性控制对齐方式。Expanded组件类似Flex布局,可定义子组件在父组件中的占比,常用于实现自适应布局。文章通过多个代码示例展示了这些组件的具体应用,包括设置内边距、多元素对齐、比例分配空间等场景,并提供了一个综合布局实例,演示了如何组合使用这些组件 阅读详情

Expanded组件是flutter中使用率很高的一个组件,它可以动态调整child组件沿主轴的尺寸,比如填充剩余空间,比如设置尺寸比例。它常常和Row或Column组合起来使用。

构造函数

const Expanded(
{Key key,
int flex: 1,
@required Widget child}
)

它除了child之外,有一个flex属性比较常用。flex表示弹性系数,默认是1。

下面结合Row来实验Expanded的用法。

示例一:当Row中的组件不使用Expanded的时候

import 'package:flutter/material.dart';

void main() => runApp(MaterialApp(
    home: Scaffold(
        appBar: AppBar(title: Text("Row demo")),
        body: Container(
            color: Colors.green,
            child: Row(children: <Widget>[
              Image.asset(
                "graphyics/face.jpg",
                width: 100,
                height: 100,
                fit: BoxFit.cover,
              ),
              Image.asset(
                "graphyics/face.jpg",
                width: 100,
                height: 100,
                fit: BoxFit.cover,
              ),
              Image.asset(
                "graphyics/face.jpg",
                width: 100,
                height: 100,
                fit: BoxFit.cover,
              )
            ])))));

运行效果:
在这里插入图片描述
如果不明白为什么会这样,请参阅我的另一篇文章 flutter Row和Column组件

示例二:将Row中的第一个组件使用Expanded包裹

import 'package:flutter/material.dart';

void main() => runApp(MaterialApp(
    home: Scaffold(
        appBar: AppBar(title: Text("Row demo")),
        body: Container(
            color: Colors.green,
            child: Row(children: <Widget>[
              Expanded(
                  child: Image.asset(
                "graphyics/face.jpg",
                width: 100,
                height: 100,
                fit: BoxFit.cover,
              )),
              Image.asset(
                "graphyics/face.jpg",
                width: 100,
                height: 100,
                fit: BoxFit.cover,
              ),
              Image.asset(
                "graphyics/face.jpg",
                width: 100,
                height: 100,
                fit: BoxFit.cover,
              )
            ])))));

运行效果:
在这里插入图片描述
可以看到,将第一个组件使用Expanded包裹后,第一个组件设置的width会无效,并且它在主轴方向变大,直到填充剩余空间,但在纵轴方向上并没有变大,依然维持自身的height。

第一个图像因为设置了 fit: BoxFit.cover,所以会被裁剪。BoxFit.cover表示图像填充组件,多余的进行裁剪处理。

示例三:使用Expanded实现Row中所有组件平均分配剩余空间

import 'package:flutter/material.dart';

void main() => runApp(MaterialApp(
    home: Scaffold(
        appBar: AppBar(title: Text("Row demo")),
        body: Container(
            color: Colors.green,
            child: Row(children: <Widget>[
              Expanded(
                  child: Image.asset(
                "graphyics/face.jpg",
                width: 100,
                height: 100,
                fit: BoxFit.cover,
              )),
              Expanded(
                  child: Image.asset(
                "graphyics/face.jpg",
                width: 100,
                height: 100,
                fit: BoxFit.cover,
              )),
              Expanded(
                  child: Image.asset(
                "graphyics/face.jpg",
                width: 100,
                height: 100,
                fit: BoxFit.cover,
              ))
            ])))));

运行效果:
在这里插入图片描述
有人会问,这样跟将Row设置mainAxisAlignment:MainAxisAlignment.spaceEvenly有什么区别呢?MainAxisAlignment.spaceEvenly 并不会改变子组件的尺寸,大家可以参阅我的另一篇文章
flutter Row和Column组件 示例六

示例四:将一个组件设置成其它组件的两倍大小

import 'package:flutter/material.dart';

void main() => runApp(MaterialApp(
    home: Scaffold(
        appBar: AppBar(title: Text("Row demo")),
        body: Container(
            color: Colors.red,
            child: Row(children: <Widget>[
              Expanded(
                  child: Image.asset(
                "graphyics/face.jpg",
                width: 100,
                height: 100,
                fit: BoxFit.cover,
              )),
              Expanded(
                  flex: 2,
                  child: Image.asset(
                    "graphyics/face.jpg",
                    width: 100,
                    height: 100,
                    fit: BoxFit.cover,
                  )),
              Expanded(
                  child: Image.asset(
                "graphyics/face.jpg",
                width: 100,
                height: 100,
                fit: BoxFit.cover,
              ))
            ])))));

运行效果:
在这里插入图片描述
由于其它组件弹性系数默认是1,中间组件设置了弹性系数2,因此宽度是其它组件的两倍。

Expanded组件的属性比较少,用途广泛,用法也很简单。关于它的介绍就到这里,不知道你有没有学会?学会了点个赞呗~

STM32F030F4P6 ADC多通道定时器触发DMA搬运 主函数中等待转换完成的标志位,然后打印出来。ADC回调函数中将数值赋值给变量。配置定时器1s读一次。 阅读详情

相关推荐

开发者体验度量:构建DevEx评估体系的方法论与工具

在深入讨论度量方法前,我们需要明确什么是开发者体验(DevEx)。许多人将其简化为"开发工具好不好用",这是一个危险的误解。开发者体验是指开发者在完成工作过程中的整体感受和效率,它由三大核心维度组成:工具与基础设施:开发、测试、部署工具链的效能流程与协作:工作流程的顺畅度和团队协作的效率文化与成长:支持实验、学习和专业发展的环境这三个维度相互作用,共同决定了开发者能否高效且愉悦地完成工作。开发者体验不是一个目的地,而是一段持续的旅程。

2401_88760782的博客 1429

Flutter 中的 Expanded 小部件:全面指南

Expanded。

smileKH的博客 2724

Python+pytest+requests 自动化测试框架

环境准备 本次选用的是Python+Pytest+requests来搭建自动化框架,需要有 Python 环境(3.x 版本),安装pytest和requests,不会安装的自行去网上搜教程。 关于 Pytest 的基本使用,这里不作讲解,不清楚的可以看我之前的文章。 简单 Demo 我们先创建一个项目,取名api-test,然后在下面创建一个test_api.py的文件 # test_api.py import pytest import requests def test_01():

weixin_42686892的博客 1万+

Flutter Widgets 之 Expanded和Flexible

Expanded和Flexible是控制Row、Column、Flex的子控件如何布局的控件,Expanded和Flexible可以扩张填满主轴剩余空间,如何确认主轴和交叉轴可以查看Flutter Widgets 之 Row和Column,这篇文章详细介绍了主轴和交叉轴。首先看一下Expanded和Flexible的构造函数:区别如下 - Expanded 继承自Flexible。 - Flexible 中参数默认是,而Expanded固定为。因此如果在使用Flexible时,设置为,Flexible和Ex

Dream It Possible 3999

浮点数运算的陷阱与启示:FP16加法器/乘法器开发中的常见误区

本文深入探讨FP16加法器和乘法器开发中的常见误区,包括FP16格式解析、阶码对齐陷阱、尾数运算风险及规格化处理。通过Verilog实战代码展示防御性编程技巧,帮助开发者避免边界条件处理和异常状态管理中的错误,提升硬件设计的可靠性和效率。

dell8的博客 249

第1关:STL模板之queue实例一:最少个数

头歌自创答案

xiyunSacire的博客 817

【Flutter组件】Expanded详解

Expanded详解以及注意事项

It一zhai男 3417

让 ABAP Screen Variant 安稳上车:SHD0 与 SHD0_MANDT 的 Transport 全攻略

摘要: SAP项目常需优化交易码界面,通过SHD0的Transaction Variant和Screen Variant可实现字段精简、默认值预设及权限控制,避免修改标准代码。但跨系统迁移时易出现变式丢失或版本兼容问题。核心概念包括: Screen Variant:针对单个屏幕的字段属性配置(跨Client); Transaction Variant:串联多屏幕变式(分跨Client和Client-specific); 版本差异:4.70/6.x后需区分SHD0(跨Client)与SHD0_MANDT(Cl

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 225

【flutter】A RenderFlex overflowed by xxx pixels on the right

flutter开发中经常会遇到如标题所示的错误,意思是控件超出了屏幕尺寸。表现为应用并没有闪退,只是UI显示会与预期不符。 比如在Row中放置几张图片时,最后一张超出了屏幕宽度,会变成这样子: 源代码: import 'package:flutter/material.dart'; void main() => runApp(MaterialApp( home: Scaffold...

devnn的专栏 5973

YOLOv13有效涨点改进专栏目录 | 本专栏持续更新500+篇内容 | 包含各种卷积、主干网络、各种注意力机制、检测头、损失函数、小目标检测改进、二次创新模块、独家创新等几百种创新点改进

《YOLOv13改进专栏重磅更新》推出500+创新改进方案,涵盖卷积、主干网络、注意力机制、检测头等核心模块优化。专栏提供完整项目代码及答疑服务,包含YOLOv13网络结构解析、环境配置、模型训练全流程指导。内容分为八大模块:卷积优化、注意力机制、细节涨点、主干网络改进、特征融合、检测头优化、小目标检测及Mamba联合改进等,支持多种创新点组合应用,助力科研论文发表。现开放限时订阅,提供试读章节和详细技术解析。

Ai缝合怪、助力小伙伴高效发论文 3371

037、有源钳位反激变换器(ACF)原理

文章摘要 有源钳位反激变换器(ACF)是一种克服常规反激电路漏感能量处理瓶颈的高效解决方案。文章从实际炸机案例切入,指出RCD钳位电路在高压、宽范围、高功率场景下的局限性。ACF通过增加钳位管和钳位电容,将漏感能量回收而非消耗,实现效率提升2-3%、精准电压钳位和更好EMI性能。文章详细解析了ACF四阶段工作过程、关键波形特征,并指出设计陷阱:漏感需保持1%-3%特定范围、钳位电容ESR要求严格、需专用控制IC支持互补驱动。最后给出实用调试建议,强调ACF适用于65W+功率场景,低压验证后再逐步升压的调试方

Jack010169的博客 254

flutter组件之Expanded

flutter组件之Expanded 自我理解: 如果你了解android开发的话,这个属性就相当于在LinerLayout子空间中的 layout_weight 属性(布局权重) 使用“Expanded”小部件可使“Row”,“column”或“ Flex”的子级展开以填充主轴上的可用空间(例如,水平放置为“Row”或垂直放置为“Column”)。 如果扩展了多个子项,则会根据伸缩因子在可用空间...

u011511057的专栏 672

【PCL 特征】积分图法线估计

本文介绍了基于积分图的有序点云法线估计方法。通过利用点云数据的行列式结构特性,该方法避免了传统KD树搜索,采用积分图将邻域统计运算复杂度从O(k²)降至O(1)。详细阐述了四种法线估计算法:协方差矩阵法(精度最高)、平均3D梯度法(实时性好)、平均深度变化法(适合SLAM)和简单3D梯度法(速度最快)。重点分析了积分图构建、动态窗口平滑处理、法线方向调整等关键技术,并提供了PCL实现代码示例。实验表明,不同方法在精度和速度上存在显著差异,可根据具体应用场景选择合适算法。

yijiujiusan的博客 275

【Flutter】Flutter 布局组件 ( Wrap 组件 | Expanded 组件 )

一、Wrap 组件、 二、Expanded 组件、 三、完整代码示例、 四、相关资源

让 学习 成为一种 习惯 ( 韩曙亮 の 技术博客 ) 1732

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Flutter 组件之 Expanded

占位组件,也可以看做自带自适应的组件。

Tools_are的博客 212

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Flutter 页面布局 Padding 、Row、Column、Expanded组件

Padding组件 //导入了Material UI组件库 ,快捷操作fim import 'package:flutter/material.dart'; void main() { runApp(MyApp()); } //自定义组件 //StatelessWidget:无状态组件,状态不可变的widget //StatefulWidget:有状态组件,状态可以改变 //fluter...

蓝枫 1119

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Flutter组件 - Expanded

Row、Column、Flex会被Expanded撑开,充满主轴可用空间。 使用方式: Row( children: &lt;Widget&gt;[ Container( /// 此组件在主轴方向占据48.0逻辑像素 width: 48.0 ), Expanded( child: Container() /// 此组件会填满Row在主轴方向...

chunchun1230的博客 1590

Flutter布局组件之弹性布局组件Flex和Expanded

弹性布局Flex 弹性布局允许子组件按照一定比例来分配父容器空间。Flutter中的弹性布局主要通过Flex和Expanded来配合实现。 Flex组件可以沿着水平或垂直方向排列子组件,如果你知道主轴方向,使用Row或Column会方便一些,因为Row和Column都继承自Flex,参数基本相同,所以能使用Flex的地方基本上都可以使用Row或Column。Flex本身功能是很强大的,它也可以和E...

m0_46369686的博客 861

【Flutter 组件集录】Flexible、Expanded 和 Spacer

前言: 这是我参与8月更文挑战的第 19 天,活动详情查看:8月更文挑战。为应掘金的八月更文挑战,我准备在本月挑选 31 个以前没有介绍过的组件,进行全面分析和属性介绍。这些文章将来会作为 Flutter 组件集录 的重要素材。希望可以坚持下去,你的支持将是我最大的动力~ | 本系列 |...

张风捷特烈的博客 273

Flutter 组件之Padding、Row、 column、Expanded、Stack层叠 组件

入口文件 import 'package:flutter/material.dart'; void main() { runApp(HomeComponent()); } class HomeComponent extends StatelessWidget { @override Widget build(BuildContext context) { // TODO: ...

June.1 789

6.Flutter学习之Padding,Row,Column,Expanded组件

参考博客: 笔录Flutter(五)布局系列:Row、Column、Flex、Expanded 常用属性、使用 https://blog.youkuaiyun.com/huyongl1989/article/details/83745871 https://blog.youkuaiyun.com/gzx110304/article/details/101627286 Padding组件 因为Flutter中有很多Widg...

易帜¤的博客 1767

flutter 页面布局 Paddiing Row Column Expanded 组件

Flutter Paddiing 组件 在 html 中常见的布局标签都有 padding 属性,但是 Flutter 中很多 Widget 是没有 padding 属 性。这个时候我们可以用 Padding 组件处理容器与子元素直接的间距。 属性 说明 padd...

weixin_30764137的博客 276

Flutter 页面布局:Padding、Row、Column、Flex、Expanded 组件详解

在 Flutter 开发中,页面布局是构建美观且用户友好界面的关键环节。本文将深入介绍 Padding、Row、Column、Flex 和 Expanded 这几个常用的布局组件,帮助你更好地掌握 Flutter 的布局技巧,打造出灵活多样的页面布局。

m0_57836225的博客 1792

flutter应用开发--使用Expanded组件解决文本溢出的问题

在 Flutter 中,Expanded。

2401_88846919的博客 385
上一篇: 【flutter】Row和Column组件
下一篇: 【Android】chrome xxx is 32-bit instead of 64-bit
devnn
博客等级 码龄12年 2005粉丝 90原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值