Flutter学习笔记(二)
Flutter学习笔记(二)
¶1. 概述
Flutter中其实提供很多种类的内置组件,既涉及有状态的,也涉及无状态的,使用这些组件进行组合,很快能够完成界面布局的搭建工作
¶2. 容器类
容器自然是要可以将其他组件放在自己的内部的,有点像Android里面的ViewGroup
或者HTML里面的<div>
¶2.1. Container
Container
组件的主要作用是将其他组件打包,以便于整体进行修饰或定位
可以将这里的Container
看做是Android里的某一种布局
1 | Container( |
这里只包含一个Text
组件,并且设置了容器的背景色,在默认情况下,Container
的大小会根据内容的大小自适应,可以看做是Android中的wrap_content
当然,内边距的padding
的效果也别无二致
1 | Container( |
EdgeInsets.all()
从外表大致能猜出来是四周都设置为相同的指定边距
使用margin
属性无疑是添加组件四周的外边距的设置
1 | Container( |
装饰器可以用来在容器内部添加一个图形
注意:
装饰器不可与color属性共存
1 | Container( |
这样看起来显然不好看,装饰器的大小默认受制于整个容器的大小,而容器的大小又是被内部的子组件撑起来的,那么在有限的空间里只能允许这么大的圆
因为装饰器在Container
内部,因此只要增加一些padding
,这样就有更多空间“发育”
对齐属性,作用于Container
的子级组件
注意:
该属性直接设置后当前容器会直接铺满父容器,感觉这一点很奇怪,可能是因为本身默认情况下自适应,没有办法体现该属性的效果吧,但这就改变自己用于体现这种效果吗,这个组件的表现欲也太强了😂
1 | Container( |
当然,也可以通过指定宽高或者进行布局约束覆盖该效果
1 | Container( |
¶2.2. Padding
注意,这里的Padding
不是一个属性,而是一个组件
简单了解一下之前提到的EdgeInsets
它是抽象类EdgeInsetsGeometry
的子类,可以用来描述组件各个方向上的距离
Padding
组件实际上与Container
的padding
属性差不多,但是更加专一和轻量
1 | Padding( |
¶2.3. Align
Align
组件重点描述的是父子组件之间的关系,子组件相对于父组件的位置
注意:
这里在使用
Align
组件时和之前Container
的alignment
属性有相似之处,父级都会自己扩展范围
1 | Container( |
这里设置文本组件位于父级组件的左上角,可以想象父级组件会默认为父级的大小,然后将子级组件放到左上角(因为没有指定大小)
除了代码枚举的几个预设的位置,还可以通过校准值进行指定
Align
组件在定义中将一个组件在水平方向和垂直方向,水平方向上组件从左至划分为为-1 ~ 1,垂直方向上组件从上到下划分为-1 ~ 1
当然,范围可以超出,只是不在组件范围内了
1 | Container( |
这样可以将对齐控制得更加精确