Flutter中的FractionalOffset和Alignment有什么区别?

时间:2019-08-27 13:47:26

标签: flutter dart flutter-layout

我对FractionalOffset和Alignment之间的区别感到困惑..我看到它们在做同样的事情..检查示例代码以了解我:

示例1:

final fractionalOffset = Container(
      margin: EdgeInsets.symmetric(
        vertical: 16,
      ),
      alignment: FractionalOffset.bottomLeft,
      child: Image(
        image: AssetImage("example1"),
        height: 92,
        width: 92,
      ),
    );

示例2:

final alignment = Container(
      margin: EdgeInsets.symmetric(
        vertical: 16,
      ),
      alignment: Alignment.bottomLeft,
      child: Image(
        image: AssetImage("example2"),
        height: 92,
        width: 92,
      ),
    );

1 个答案:

答案 0 :(得分:2)

官方文档解释得很好:

  

FractionalOffset使用矩形为origin in the top-left corner的坐标系,而Alignment使用矩形为origin in the center的坐标系。

也:

  

从历史上看,FractionalOffset早于Alignment。尝试制作适合TextDirection的FractionalOffset版本时,我们遇到了麻烦,因为将原点放在左上角会产生从左到右的偏差,很难消除。

总而言之,FractionalOffset独立于TextDirection,其中Alignment与之相关。

示例:

  

Alignment(-1.0,-1.0)表示矩形的top left

     

Alignment(1.0,1.0)表示矩形的bottom right

     

FractionalOffset(1.0,0.0)表示大小的top right

     

FractionalOffset(0.0,1.0)表示大小的bottom left

下次请先结帐正式文件。尤其是Flutter文档的组织性很好,可以使用搜索引擎,编写类名可以使内容更加混乱。