题记
—— 执剑天涯,从你的点滴积累开始,所及之处,必精益求精,即是折腾每一天。

** 你可能需要
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 组件的宽高限制分析相关推荐

  1. dataV中重置边框组件的宽高的initWH方法的使用

    先说下我遇到的情况,项目就是很经典的后台管理系统,菜单在左侧,并且可以收缩,首页是个可视化页面,用到了dataV边框组件,但是收缩菜单的时候问题出现了,边框无法自适应父容器,下面是效果图: 可以很明显 ...

  2. 【Android 内存优化】自定义组件长图组件 ( 获取图像宽高 | 计算解码区域 | 设置图像解码属性 复用 像素格式 | 图像绘制 )

    文章目录 一.获取图像真实宽高 二.计算解码区域 三.设置解码参数 内存复用 像素格式 四.图像绘制 五.执行效果 六.源码及资源下载 官方文档 API : BitmapRegionDecoder 在 ...

  3. onResume中是否可以度量宽高?

    onResume中度量宽高是否可以? 不确定,需要看onResume在什么时候执行. viewRootImpl需要在执行了requestLayout()之后才会执行onResume方法: 而没用执行r ...

  4. Flutter中动态显示组件之“坑”,我来教你怎样爬上来。

    Flutter中动态显示组件之"坑",我来教你怎样爬上来.

  5. Flutter使用ScreenUtil获取屏幕宽高初始化报错

    报错如下 原因 我们在布局中使用ScreenUtil().screenWidth获取屏幕宽度是,在初始化未装载视图时,第一次获取时拿不到,会出现如上的崩溃. 解决方案 import 'package: ...

  6. 修改源码实现小程序UI库iview weapp的modal组件自定义宽高

    记一下小程序端UI库iview weapp的modal模态窗自定义样式修改 因为项目需要在模态窗中显示内容,小程序端的iview没有类似popup这种的弹出框,所以就选择了modal对话框来承载弹出内 ...

  7. Android 在onCreate()方法中获取控件宽高值为0解决方案

    大家很多时候需要在Activity或者Fragment的onCreate()方法中获取声明的空间的高度或者宽度,进行位置移动或者其他操作,但是当调用 view.getHeight() 或者 view. ...

  8. Flutter中PlatformView组件无法刷新的问题

    在Flutter中我们经常使用PlatformView来进行原生组件的绘制,但是倘若使用setState()进行页面刷新时候,虽然页面刷新了,但是PlatformView还是使用的之前的组件.这种情况 ...

  9. js获取svg中g元素的宽高

    这里有一个g元素: <g id="g_main" transform="translate(120,2804.5)"><rect>< ...

最新文章

  1. 深入jQuery中的data()
  2. android菜单(menu)资源
  3. 01 React初步认知、React元素、渲染、工程化
  4. matlab多项式加法运算,matlab多项式运算与代数方程求解解析.ppt
  5. 微信小程序API之showModal(Loding...)
  6. 如何建立大数据营销体系
  7. 在dos下或web下Fatal Error: undefined function mysql_connect()
  8. d2550性能 服务器,长得像I3的ATOM终于诞生了,D2550 ITX小板性能实测
  9. python sorted方法
  10. LeetCode之数组中的最长山脉
  11. 【机器学习】关联规则挖掘算法 + 三大案例实战 + Apriori算法 + Python代码实现
  12. Java ISO 8601时间格式转换
  13. linux 文件操作write详解
  14. 2022年,前端er们都在看哪些网站?(含面试、接活、学习、摸鱼等)
  15. 牛客网社区项目——p3.4事务管理
  16. 魔力鸭linux驱动下载,魔力鸭原厂2108s固件
  17. 在SQLServer处理中的一些问题及解决方法 NEWSEQUENTIALID()
  18. Windows API 常量定义
  19. 光环:软件工程环境堆栈建设思路——徐磊
  20. 打开计算机网络自动连接,电脑网络自动连接如何设置

热门文章

  1. MediaPipe: Google Research 开源的跨平台多媒体机器学习模型应用框架
  2. java调mongodb自定义函数,自定义UDF函数,从hive保存到mongodb
  3. 【机器学习】机器学习从零到掌握之十 -- 教你使用Python实现决策树
  4. OCR训练常见问题(1)
  5. 用TensorFlow做Kaggle“手写识别”达到98%准确率-详解
  6. 全局路径规划:图搜索算法介绍1(BFS/DFS)
  7. ROS 与 Matlab/Simulink联合仿真测试(1)
  8. html如何设置三列列宽相等,CSS分割宽度100%到3列
  9. php 三色排序,一个数组中只有0,1,2三种元素,要求对这样的数组进行排序,一个数组中只有0,1,2三种元素,要求对这样的数组进行排序,第2章 排序 | | 第17节 三色排序练习题...
  10. 2021年下半年网络工程师上午真题及答案解析