UI布局多半是套路,熟悉套路的規則。
Flutter的UI布局也有一套規則
center
center可以讓任何元素在屏幕中居中,既是水平居中又是垂直居中,如果想讓元素從上而下排列要怎么辦呢?那就得使用column來配合
container
container是個容器,可以包在一個元素的外面,container大多數可以做一個圓角邊框,或者設一個統一的背景色,container默認隨元素的大小而變化。所以container是一個很吝嗇的元素,另外一些元素想和其他元素保持一定的間距,可以借用container的margin屬性來設置
row column
作為橫向或者豎向的布局,column最大的寬度有子元素的最大寬度決定的,換句話說,如果column的子元素設為了居中,其它子元素根據column的寬度居中,因此column 默認處在屏幕的最左邊,如果讓column居中,需要使用center來配合, row 布局元素的時候,如果元素的長度比如text超出了一行的長度,並不會自動換行,必須配合expanded,但是column是會自動換行的,這個是它們的一點異同點,需要注意
expanded
顧名思義是膨脹擴展的意思,只能用在具有flex布局屬性的容器控件里,譬如column,row
比如row里有三個元素,我想讓某一個元素占用所有的剩余行空間,可以在該元素外面套上expanded