Flutter crossAxisAlignment vs mainAxisAlignment

折月煮酒 提交于 2020-07-31 07:26:42

问题


I'm confused about crossAxisAlignment and mainAxisAlignment. Can anyone please explain it in simple words?


回答1:


For Row:

mainAxisAlignment = Horizontal Axis
crossAxisAlignment = Vertical Axis


For Column:

mainAxisAlignment = Vertical Axis
crossAxisAlignment = Horizontal Axis

Image source




回答2:


Row/Column are associated to an axis:

  • Horizontal for Row
  • Vertical for Column

mainAxisAlignment is how items are aligned on that axis. crossAxisAlignment is how items are aligned on the other axis.




回答3:


This two pictures are clear to show the meaning of MainAxisAlignment and CrossAxisAlignment.

(Pictures are from Network)




回答4:


When you use a Row, its children are laid out in a row, which is horizontally. So a Row's main axis is horizontal. Using mainAxisAlignment in a Row lets you align the row's children horizontally (e.g. left, right). The cross axis to a Row's main axis is vertical. So using crossAxisAlignment in a Row lets you define, how its children are aligned vertically.

In a Column, it's the opposite. The children of a column are laid out vertically, from top to bottom (per default). So its main axis is vertical. This means, using mainAxisAlignment in a Column aligns its children vertically (e.g. top, bottom) and crossAxisAlignment defines how the children are aligned horizontally in that Column.




回答5:


In a column,

  • to center(or align) vertically, mainAxisAlignment is used.
  • to center(or align) horizontally, crossAxisAlignment is used.

In a row,

  • to center(or align) horizontally, mainAxisAlignment is used.
  • to center(or align) vertically, crossAxisAlignment is used.


来源:https://stackoverflow.com/questions/53850149/flutter-crossaxisalignment-vs-mainaxisalignment

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!