Grid 是 Jetpack Compose API,可讓您靈活實作二維版面配置。有了這個 API,您就能以多欄或多列版面配置顯示項目,並根據可用的容器大小進行調整。
Grid 的彈性自動調整式二維版面配置。Grid 與類似的可組合項有何不同?
Compose 已提供類似的元件,例如 LazyVerticalGrid。這些元件主要用於視覺化呈現大型同質資料集,例如在影片串流應用程式中顯示內容目錄。這些元件「不」適用於螢幕或複雜元件的結構化版面配置。
您也可以結合多個 Row 和 Column 可組合函式,實作二維版面配置。不過,這種做法有一些缺點,例如階層過深和難以調整。
下表概略說明各 API 適合的版面配置:
| 元件 | 目的 |
|---|---|
LazyVerticalGrid、LazyStaggeredGrid、LazyHorizontalGrid |
需要延遲載入的大型同質資料集視覺化。 |
Row、Column、FlexBox |
一維版面配置 |
Grid |
二維版面配置 |
術語
請熟悉下列術語,瞭解 Grid 的運作方式。
格線
格線由水平和垂直線條組成。 如果格線有三列,則會有四條水平線,包括最後一列之後的那條。在下圖中,每條虛線都代表一條格線:
格線軌跡
格線軌跡是兩條格線之間的空間。列軌道位於兩條水平線之間,欄軌道則位於兩條垂直線之間。如要定義這些軌道的大小,請在建立格線時指派大小。
網格
格線儲存格是列和欄軌跡的交集。
格線區域
網格區域由多個網格儲存格組成。您可以讓項目跨越多個軌道,藉此定義網格區域。
格線間距
網格間距是指網格軌道之間的間隔。您無法將 UI 元素放入間隔,但可以跨越間隔。