HarmonyOS 網(wǎng)格布局Grid

網(wǎng)格布局是由“行”和“列”分割的單元格所組成。

布局

Grid的子組件必須是GridItem組件,Grid組件支持自定義行列數(shù)和每行每列尺寸占比、設(shè)置子組件橫跨幾行或者幾列,同時也提供了垂直和水平布局的能力。
Grid組件提供了rowsTemplate和columnsTemplate屬性用于設(shè)置網(wǎng)格布局行列數(shù)量與尺寸占比。
rowsTemplate和columnsTemplate屬性值是由空格和‘?dāng)?shù)字 + fr’ 間隔拼接的字符串,fr的個數(shù)即網(wǎng)格布局的行或列數(shù)。


image.png
Grid() {
  ...
}
.rowTemplate('1fr 1fr 1fr') //每行占1份
.columnsTemplate('1fr 2fr 1fr') //一共4份,占1:2:1的比例 

設(shè)置主軸方向

可以通過layoutDirection設(shè)置網(wǎng)格布局的主軸方向,決定子組件的排列方式。還可以結(jié)合minCount和maxCount屬性來約束主軸方向上的網(wǎng)格數(shù)量。

      Grid() {
        GridItem() {
          Text("Grid布局1")
        }
        GridItem() {
          Text("Grid布局2")
        }
        GridItem() {
          Text("Grid布局3")
        }
      }.layoutDirection(GridDirection.Row) // 按行來排列
      .maxCount(3)//表示主軸方向上最大的網(wǎng)格單元數(shù)為3

設(shè)置行列間距

通過Grid的rowsGap和columnsGap可以設(shè)置網(wǎng)格布局的行列間距。

Grid() {
      ....
}.columnsGap(10)
.rowsGap(15)//行間距15vp,列間距為10vp
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容