Flutter - AlignmentGeometry :Alignment 和 FractionalOffset
创始人
2024-04-20 13:42:42

AlignmentGeometry 是一个抽象类,它有两个常用的子类:Alignment和 FractionalOffset

Alignment
Alignment继承自AlignmentGeometry,表示矩形内的一个点,他有两个属性x、y,分别表示在水平和垂直方向的偏移
在这里插入图片描述
上图中 FlutterLogo 居中显示
产生这个现象的原因是因为 Alignment(0,0)Alignment.center

        Container(height: 120.0,width: 120.0,color: Colors.blue[50],child: Align(alignment: Alignment(0,0),//FractionalOffset(0.1, 0.1)child: FlutterLogo(size: 60,),),),
或 Container(height: 120.0,width: 120.0,color: Colors.blue[50],child: Align(alignment: Alignment.center,//FractionalOffset(0.1, 0.1)child: FlutterLogo(size: 60,),),),

源码中 Alignment提供了九个常亮参数 分别是 上左 ,上中 ,上右 ,中左 ,…九个
在这里插入图片描述
我们可以从上面发现,x 和 y 值都是从 -1 到 1 以0位中点
除了上面的九种排列方式外,如果我们想子控件在父控件的某个具体位置显示,可能通过计算得出要传的参数

例 : 想放一个控件在中间靠左一点

在这里插入图片描述

// Alignment(-0.7,0)
// -1 是最右边 ,所以-0.7 会稍微靠右  (水平方向)
// 0 居中 (垂直方向)Container(height: 120.0,width: 120.0,color: Colors.blue[50],child: Align(alignment: Alignment(-0.7,0),//FractionalOffset(0.1, 0.1)child: FlutterLogo(size: 60,),),),

FractionalOffset

FractionalOffset 继承自 Alignment,它和 Alignment唯一的区别就是坐标原点不同
FractionalOffset的区值是从 0 到 1
例 使用FractionalOffset使 控件居中
在这里插入图片描述

// 居中传入的值为 FractionalOffset(0.5, 0.5)Container(height: 120.0,width: 120.0,color: Colors.blue[50],child: Align(alignment: FractionalOffset(0.5, 0.5),//FractionalOffset(0.1, 0.1)child: FlutterLogo(size: 60,),),),

在这里插入图片描述
为达到上面这个效果的话 需要传 FractionalOffset(0.15, 0.5)

下面是 FractionalOffset 提供的九个默认方法,和Alignment基本也差不多
在这里插入图片描述

相关内容

热门资讯

北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
阿西吧是什么意思 阿西吧相当于... 即使你没有受到过任何外语培训,你也懂四国语言。汉语:你好英语:Shit韩语:阿西吧(아,씨발! )日...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...