我想学习更多关于偏移的知识,我在谷歌上搜索了一下,发现很少有教程。我发现这个教程https://blog.logrocket.com/understanding-offsets-flutter/,但有点复杂。我在某个地方了解到,它是从屏幕中心偏移(0,0)(使用Offset(dx,dy))表示的,例如:
- 偏置(1,0)是中间偏右
- 偏移量(-1,0)为中间偏左
- 偏移(0,1)是底部中心
- Offset(0,-1)是顶部中心,但我还有其他Offset(30,20)的例子。我迷路了,用什么单位表示?是否取决于widget的类型?有没有简单的教程?谢谢你,谢谢!
2条答案
按热度按时间4c8rllxm1#
理解
Offset
、Alignment
、Rect
和Size
都非常重要。我不时地花一些时间回顾他们的协议,当我必须处理Stack
中的Positioned
小部件或用CustomPainter
在画布上绘画时,这是值得的。我很害怕看到所有这些绘画应用程序都把x和y作为变量对来处理,而不是使用自配对的偏移量和数学。特别酷的是
Offset.fromDirection
,它可以进行极坐标到直角坐标的计算,这意味着你不必记住你的时间来布置钟面。sqxo8psd2#
Offset
的功能完全取决于它所使用的Widget
。查看完整示例:这里我们在
Transform.translate
中使用它,在Offset
中使用的值等于它将被移动的像素数,所以你得到这样的输出:如果我们用
FractionalTranslation
代替它,就像这样:我们使用相同的偏移量得到这个:
在这里,它根据自己的大小变化。
比如
FractionalOffset
s。举例来说:或
这里0,0对应于父节点的顶部。左下角1.1 2,2意味着位置,所以1,1正好在两者之间,以此类推因此,行为也取决于窗口大小。
还有更多的可能性,在每一个可能意味着别的东西