Flutter中Contrainer 组件的宽高限制分析
题记
—— 执剑天涯,从你的点滴积累开始,所及之处,必精益求精,即是折腾每一天。
** | 你可能需要 |
---|---|
CSDN | 网易云课堂教程 |
掘金 | EDU学院教程 |
知乎 | Flutter系列文章 |
头条同步 | 百度同步 |
本文章首发于微信公众号(biglead) 我的大前端生涯 ,同步刊登各技术论坛。
1 Contrainer 组件
在 Flutter 应用程序开发中,Contrainer组件可以理解为容器,常用用来设置背景、设置一个 Widget 的内外边距、以及边框样式等等。
2 Contrainer 组件的基本使用以及大小限定分析
Contrainer 组件的大小限定可以描述为:
- 当 Contrainer 组件的父布局设置了大小,那么 Contrainer 将使用父布局的大小设置,
- 如果 父布局没有设置大小 ,自身设置了大小,那么 Contrainer 将使用自身设置的大小,
- 如果 自身没有设置大小,那么 Contrainer 将包裹子 Widget 或者说是将使用子Widget 的大小设置
在这里 黄色的 Contrainer 与 灰色的 Contrainer 的大小完全一至,而灰色的 Contrainer 的大小是由父黄色的Contrainer设置的大小(200,200)决定的, 自身设置的(100,100),并没有起到影响, 子Widged SizedBox 设置的大小(50,50)也没有影响 父组件 灰色的 Contrainer 的大小。
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';class ContainerHomePage extends StatefulWidget {@overrideState<StatefulWidget> createState() {return ContainerHomePageState();}
}class ContainerHomePageState extends State {@overrideWidget build(BuildContext context) {return Scaffold(appBar: new AppBar(title: Text("Container 配制"),),body: Center(///内三组件child: Container(///Container 默认包裹子widget (没任何内外大小的限制 )///Container的背景颜色width: 200,height: 200,///黄色color: Colors.yellow,///当Container 的外层有大小限制进 Container取用的是外层设置的大小///内二组件child: Container(///灰色color: Colors.grey,width: 100,height: 100,///内一组件child: SizedBox(width: 50,height: 50,child: Text("这里是body "),),),),),);}
}
Container 的大小由子 自身设置 的情况分析
在这里 黄色的 Contrainer 与 灰色的 Contrainer 的大小完全一至,而灰色的 Contrainer 的大小是由自身设置的大小(100,100)决定的, 子Widged SizedBox 设置的大小(50,50)将没有影响 父组件 灰色的 Contrainer 的大小。
class ContainerHomePageState extends State {@overrideWidget build(BuildContext context) {return Scaffold(appBar: new AppBar(title: Text("Container 配制"),),body: Center(///内三组件child: Container(///Container 默认包裹子widget (没任何内外大小的限制 )///Container的背景颜色
// width: 200,
// height: 200,color: Colors.yellow,///当Container 的外层有大小限制进 Container取用的是外层设置的大小///内二组件child: Container(color: Colors.grey,width: 100,height: 100,///内一组件child: SizedBox(width: 50,height: 50,child: Text("这里是body "),),),),),);}
}
Container 的大小由子 Widget 决定 的情况分析
如图所示
黄色的 Contrainer 与 灰色的 Contrainer 的大小完全一至,而灰色的 Contrainer 的大小是由子Widged SizedBox 设置的大小(50,50)决定的
class ContainerHomePageState extends State {@overrideWidget build(BuildContext context) {return Scaffold(appBar: new AppBar(title: Text("Container 配制"),),body: Center(///内三组件child: Container(///Container 默认包裹子widget (没任何内外大小的限制 )///Container的背景颜色
// width: 200,
// height: 200,color: Colors.yellow,///当Container 的外层有大小限制进 Container取用的是外层设置的大小///内二组件child: Container(color: Colors.grey,
// width: 100,
// height: 100,///内一组件child: SizedBox(width: 50,height: 50,child: Text("这里是body "),),),),),);}
}
Flutter中Contrainer 组件的宽高限制分析相关推荐
- dataV中重置边框组件的宽高的initWH方法的使用
先说下我遇到的情况,项目就是很经典的后台管理系统,菜单在左侧,并且可以收缩,首页是个可视化页面,用到了dataV边框组件,但是收缩菜单的时候问题出现了,边框无法自适应父容器,下面是效果图: 可以很明显 ...
- 【Android 内存优化】自定义组件长图组件 ( 获取图像宽高 | 计算解码区域 | 设置图像解码属性 复用 像素格式 | 图像绘制 )
文章目录 一.获取图像真实宽高 二.计算解码区域 三.设置解码参数 内存复用 像素格式 四.图像绘制 五.执行效果 六.源码及资源下载 官方文档 API : BitmapRegionDecoder 在 ...
- onResume中是否可以度量宽高?
onResume中度量宽高是否可以? 不确定,需要看onResume在什么时候执行. viewRootImpl需要在执行了requestLayout()之后才会执行onResume方法: 而没用执行r ...
- Flutter中动态显示组件之“坑”,我来教你怎样爬上来。
Flutter中动态显示组件之"坑",我来教你怎样爬上来.
- Flutter使用ScreenUtil获取屏幕宽高初始化报错
报错如下 原因 我们在布局中使用ScreenUtil().screenWidth获取屏幕宽度是,在初始化未装载视图时,第一次获取时拿不到,会出现如上的崩溃. 解决方案 import 'package: ...
- 修改源码实现小程序UI库iview weapp的modal组件自定义宽高
记一下小程序端UI库iview weapp的modal模态窗自定义样式修改 因为项目需要在模态窗中显示内容,小程序端的iview没有类似popup这种的弹出框,所以就选择了modal对话框来承载弹出内 ...
- Android 在onCreate()方法中获取控件宽高值为0解决方案
大家很多时候需要在Activity或者Fragment的onCreate()方法中获取声明的空间的高度或者宽度,进行位置移动或者其他操作,但是当调用 view.getHeight() 或者 view. ...
- Flutter中PlatformView组件无法刷新的问题
在Flutter中我们经常使用PlatformView来进行原生组件的绘制,但是倘若使用setState()进行页面刷新时候,虽然页面刷新了,但是PlatformView还是使用的之前的组件.这种情况 ...
- js获取svg中g元素的宽高
这里有一个g元素: <g id="g_main" transform="translate(120,2804.5)"><rect>< ...
最新文章
- 深入jQuery中的data()
- android菜单(menu)资源
- 01 React初步认知、React元素、渲染、工程化
- matlab多项式加法运算,matlab多项式运算与代数方程求解解析.ppt
- 微信小程序API之showModal(Loding...)
- 如何建立大数据营销体系
- 在dos下或web下Fatal Error: undefined function mysql_connect()
- d2550性能 服务器,长得像I3的ATOM终于诞生了,D2550 ITX小板性能实测
- python sorted方法
- LeetCode之数组中的最长山脉
- 【机器学习】关联规则挖掘算法 + 三大案例实战 + Apriori算法 + Python代码实现
- Java ISO 8601时间格式转换
- linux 文件操作write详解
- 2022年,前端er们都在看哪些网站?(含面试、接活、学习、摸鱼等)
- 牛客网社区项目——p3.4事务管理
- 魔力鸭linux驱动下载,魔力鸭原厂2108s固件
- 在SQLServer处理中的一些问题及解决方法 NEWSEQUENTIALID()
- Windows API 常量定义
- 光环:软件工程环境堆栈建设思路——徐磊
- 打开计算机网络自动连接,电脑网络自动连接如何设置
热门文章
- MediaPipe: Google Research 开源的跨平台多媒体机器学习模型应用框架
- java调mongodb自定义函数,自定义UDF函数,从hive保存到mongodb
- 【机器学习】机器学习从零到掌握之十 -- 教你使用Python实现决策树
- OCR训练常见问题(1)
- 用TensorFlow做Kaggle“手写识别”达到98%准确率-详解
- 全局路径规划:图搜索算法介绍1(BFS/DFS)
- ROS 与 Matlab/Simulink联合仿真测试(1)
- html如何设置三列列宽相等,CSS分割宽度100%到3列
- php 三色排序,一个数组中只有0,1,2三种元素,要求对这样的数组进行排序,一个数组中只有0,1,2三种元素,要求对这样的数组进行排序,第2章 排序 | | 第17节 三色排序练习题...
- 2021年下半年网络工程师上午真题及答案解析