align对齐与相对定位
Stack和Positioned,我们可以指定一个或多个子元素相对于父元素各个边的精确偏移,并且可以重叠。但如果我们只想简单的调整一个子元素在父元素中的位置的话,使用Align组件会更简单一些
Align是一个widget,用来包含另一个widget,并提供了alignment参数来对齐子widget的位置
align的参数如下
const Align({
super.key,
this.alignment = Alignment.center,
this.widthFactor,
this.heightFactor,
super.child,
})
具体参数用法见:https://www.yiibai.com/flutter/flutter-align.html
值得注意的是alignment参数,该参数除了有各个角落的默认值,如alignment: Alignment.bottomLeft
还可以手动填入参数,如alignment: Alignment(0.2,0.5),
会定位如下
参数值分别表示x,y,参数在-1与1之间
该参数的变化规律根据一个公式
(Alignment.x*childWidth/2+childWidth/2, Alignment.y*childHeight/2+childHeight/2)
过于复杂暂不研究,句目前了解,align与center容器极其相似,唯一不同的就是alignment: Alignment的值在align可以手动传参
值得注意点还有一点就是,align无法在row或者column组件内进行排版