Flutter之ConstrainedBox、SizedBox、UnconstrainedBox(尺寸限制类容器)

1 ConstrainedBox、SizedBox、UnconstrainedBox介绍

1)、ConstrainedBox用于对子组件添加额外的约束。例如,如果你想让子组件的最小高度是80像素

  ConstrainedBox({Key key,@required this.constraints,Widget child,})

我们可以看到这里有个constraints

  final BoxConstraints constraints;
class BoxConstraints extends Constraints {/// Creates box constraints with the given constraints.const BoxConstraints({this.minWidth = 0.0,this.maxWidth = double.infinity,this.minHeight = 0.0,this.maxHeight = double.infinity,}) : assert (minWidth != null),assert (maxWidth != null),assert (minHeight != null),assert (maxHeight != null);

我们可以看到BoxConstraints继承Constraints,然后一些属性设置。

有多重ConstrainedBox限制时,对于minWidth和minHeight来说,是取父子中相应数值较大的

 

 

2)、SizedBox:用于给子元素指定固定的宽高

3)、UnconstrainedBox:不会对子组件产生任何限制,它允许其子组件按照其本身大小绘制

一般用来去掉父约束

 

 

 

 

 

2 测试代码

测试1、

  @overrideWidget build(BuildContext context) {return MaterialApp(title: 'open url',home: Scaffold(appBar: AppBar(// Here we take the value from the MyHomePage object that was created by// the App.build method, and use it to set our appbar title.title: Text('hello flutter'),),body: Center(child: ConstrainedBox(constraints: BoxConstraints(minWidth: double.infinity,minHeight: 100),child: Container(width: 50,height: 50,color: Colors.green,),),),),);}
}

测试2、

  @overrideWidget build(BuildContext context) {return MaterialApp(title: 'open url',home: Scaffold(appBar: AppBar(title: Text('hello flutter'),),body: Center(child: ConstrainedBox(constraints: BoxConstraints(minWidth: 200,minHeight: 100),child: ConstrainedBox(constraints: BoxConstraints(minWidth: 100,minHeight: 200),child:  Container(width: 50,height: 50,color: Colors.green,),),),),),);}
}

 

测试3、

@overrideWidget build(BuildContext context) {return MaterialApp(title: 'open url',home: Scaffold(appBar: AppBar(title: Text('hello flutter'),),body: Center(child: ConstrainedBox(constraints: BoxConstraints(minWidth: 200,minHeight: 100),child: UnconstrainedBox(child: ConstrainedBox(constraints: BoxConstraints(minWidth: 50,minHeight: 50),child: Container(width: 10,height: 15,color: Colors.red,),),),),),),);}
}

 

 

 

 

 

 

 

3 运行效果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/286920.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网页用数学公式编辑器 可以集成到FCKeditor

网页用数学公式编辑器 可以集成到FCKeditor 公司有个项目是针对学校的,老师希望能在网页里编辑数学公式,找了很多工具都不行,最后只能自己动手了。用了两天的时间弄出了这个东西,希望对大家有用。本程序可以单独使用,…

【无人机组装与调试】 第五章 无人机遥控器

【无人机组装与调试】系列课程全集: 第一章 概述 第二章 关于新西达30A电调说明书的问题 第三章 舵机安装与调整 第四章 F450四轴装机实例-选择机型、需要的器材工具材料 第五章 无人机遥控器 第六章 电调、电池、电机 一、遥控器的概念 遥控器是一种无线发射装置,通过现代的…

你真的会玩SQL吗?Case也疯狂

你真的会玩SQL吗?系列目录 你真的会玩SQL吗?之逻辑查询处理阶段 你真的会玩SQL吗?和平大使 内连接、外连接 你真的会玩SQL吗?三范式、数据完整性 你真的会玩SQL吗?查询指定节点及其所有父节点的方法 你真的会玩SQL吗&a…

构建iscsi网络存储服务

网络存储概述: 随着企业中数据信息的不断增长,尤其当成百上千TB的数据需要备份、恢复,以及面临着扩容、灾难恢复等需求时,DAS(直接附加存储,就是通过与计算机主板的I/O接口,如IDE、SCSI相连接由…

10个python办公黑科技,助你办公效率提高100倍

1946年,世界上第一台通用计算机“ENIAC”在美国宾夕法尼亚大学诞生;“ENIAC”占地170平方米,重达30吨,耗电功率约150千瓦,每秒钟可进行5000次运算,这个庞然大物用于美国国防部进行弹道计算。 在当时&#…

Flutter之Container

1、Container介绍 我们先看它的构造方法 Container({Key key,this.alignment,this.padding, //容器内补白,属于decoration的装饰范围Color color, // 背景色Decoration decoration, // 背景装饰Decoration foregroundDecoration, //前景装饰double width,//容器的宽…

关于jQuery.query.js 取参数的一个小问题

形如:http://localhost:10864/srch.htm?keys&type1 这样的地址,如果我们要取keys的参数: var srchKey $.query.get("keys"); 那么得到的将是‘true’ ,而不是空客串,这常常不是我们想要的 。 修正办法…

安卓模拟器获取服务器信息出错,安卓模拟器客户端与服务器不同步

安卓模拟器客户端与服务器不同步 内容精选换一换目前从本地或虚拟机通过DRS备份迁移功能直接迁移到本云RDS for SQL Server实例上,在迁移完成后还需要针对Login账号,DBLink,AgentJOB,关键配置进行识别,并手动完成相关同…

Blazor University (24)路由 —— 可选路由参数

原文链接:https://blazor-university.com/routing/optional-route-parameters/可选路由参数Blazor 不明确支持可选路由参数,但可以通过在组件上添加多个 page 声明轻松实现等效。例如,更改标准 Counter.razor 页面以添加额外的 URL。page &qu…

【无人机组装与调试】第六章 电调、电池、电机

【无人机组装与调试】系列课程全集: 第一章 概述 第二章 关于新西达30A电调说明书的问题 第三章 舵机安装与调整 第四章 F450四轴装机实例-选择机型、需要的器材工具材料 第五章 无人机遥控器 第六章 电调、电池、电机 一、电调 6.1.1 电调的概念 电调,全称电子调速器,英…

关于tomcat和sessionCookieName和SESSION_PARAMETER_NAME以及disableURLRewriting参数原理和使用...

关于tomcat和sessionCookieName和SESSION_PARAMETER_NAME以及disableURLRewriting参数 关于session和cookie参考: http://www.blogjava.net/freeman1984/archive/2011/09/02/357833.html http://www.blogjava.net/freeman1984/archive/2010/09/09/331501.html http:…

我让代码生了个孩子继承了他爸爸谁知他爸爸继承了他爷爷(16)

本系列文章将会以通俗易懂的对话方式进行教学,对话中将涵盖了新手在学习中的一般问题。此系列将会持续更新,包括别的语言以及实战都将使用对话的方式进行教学,基础编程语言教学适用于零基础小白,之后实战课程也将会逐步更新。 若…

linux之lrzsz

1、lrzsz介绍 我们利用lrzsz进行windows和linux间的文件上传下载 2、安装 在ubuntu系统下 sudo apt-get install lrzsz 在centos系统下 yum install lrzsz 3、使用 1)、windows上传文件到linux环境,使用如下命令 rz

POJ 1611 The Suspects (并查集)

The Suspects题目链接: http://acm.hust.edu.cn/vjudge/contest/123393#problem/B Description 严重急性呼吸系统综合症( SARS), 一种原因不明的非典型性肺炎,从2003年3月中旬开始被认为是全球威胁。为了减少传播给别人的机会, 最好的策略是隔离可能的患者。 在Not-…

Android帧缓冲区(Frame Buffer)硬件抽象层(HAL)模块Gralloc的实现原理分析(2)...

函数load也是实现在文件hardware/libhardware/hardware.c文件中,如下所示: static int load(const char *id, const char *path, const struct hw_module_t **pHmi) { int status; void *handle; struct hw_module_t …

Win8消费者预览版下载地址 包含中文下载地址及中文手册

Win8消费者预览版下载地址(32位英文版): http://ak.or.esd.microsoft.com/pr/WCPDL/8A9D4FDFF736C5B1DBF956B89D6C8FDFD925DACD2/Windows8-ConsumerPreview-32bit-English-x1794225.esd Win8消费者预览版下载地址(64位英文版&…

VS2019社区版(Community)试用30天过期的有效解决办法

VS2019社区版是免费的,前提是你得登陆自己的账户,如果一开始安装时没有登陆,那么就会只有30天有效期。此时,需要我们登陆微软账号,重新验证即可。 登陆微软账号,即可继续免费试用。

【万字长文】使用 LSM Tree 思想实现一个 KV 数据库

目录设计思路内存表WALSSTable 的结构SSTable 元素和索引的结构SSTable Tree内存中的 SSTable数据查找过程何为 LSM-Treee参考资料整体结构实现过程文件压缩测试插入测试加载测试查找测试SSTable 结构SSTable 文件结构SSTable Tree 结构和管理 SSTable 文件读取 SSTable 文件SS…

linux之安装mysql提示Error: Unable to find a match: mysql-community-server

1 问题 在centos系统下安装mysql,命令如下 yum -y install mysql-community-server 提示错误如下 [root@iZm5e6dk6exl71zbx327zvZ mysql]# yum -y install mysql-community-server MySQL Connectors Community …

记录部件中GetFieldControlByFieldName(字段值样式设置)用法

度量快速开发平台中,记录部件上,不单是字段名称可以设置样式,要填入内容的方框也可以设置样式。通过获取记录部件上某一个字段的输入控件,在二次开发中不常用。该方法只有一个参数,即要获取对象的字段,需要…