格線

Grid 是 Jetpack Compose API,可讓您靈活實作二維版面配置。有了這個 API,您就能以多欄或多列版面配置顯示項目,並根據可用的容器大小進行調整。

使用 Grid 建立彈性且可調整的二維版面配置
圖 1. 使用 Grid 的彈性自動調整式二維版面配置。

Grid 與類似的可組合項有何不同?

Compose 已提供類似的元件,例如 LazyVerticalGrid。這些元件主要用於視覺化呈現大型同質資料集,例如在影片串流應用程式中顯示內容目錄。這些元件「不」適用於螢幕或複雜元件的結構化版面配置。

您也可以結合多個 Row 和 Column 可組合函式,實作二維版面配置。不過,這種做法有一些缺點,例如階層過深和難以調整。

下表概略說明各 API 適合的版面配置:

元件 目的
LazyVerticalGrid、LazyStaggeredGrid、LazyHorizontalGrid 需要延遲載入的大型同質資料集視覺化。
Row、Column、FlexBox 一維版面配置
Grid 二維版面配置

術語

請熟悉下列術語,瞭解 Grid 的運作方式。

格線

格線由水平和垂直線條組成。 如果格線有三列,則會有四條水平線,包括最後一列之後的那條。在下圖中,每條虛線都代表一條格線:

格線由四條水平線和三條垂直線組成。
圖 2。 格線由四條水平線和三條垂直線組成。

格線軌跡

格線軌跡是兩條格線之間的空間。列軌道位於兩條水平線之間,欄軌道則位於兩條垂直線之間。如要定義這些軌道的大小,請在建立格線時指派大小。

第一列的格線軌跡。
圖 3. 第一列的格線軌跡。

網格

格線儲存格是列和欄軌跡的交集。

第二列和第二欄交集的格線儲存格。
圖 4. 第二列和第二欄交集處的格線儲存格。

格線區域

網格區域由多個網格儲存格組成。您可以讓項目跨越多個軌道,藉此定義網格區域。

由四個網格儲存格組成的網格區域。
圖 5. 由四個格線儲存格組成的格線區域。

格線間距

網格間距是指網格軌道之間的間隔。您無法將 UI 元素放入間隔,但可以跨越間隔。

第一欄和第二欄之間的格線間距。
圖 6. 第一欄和第二欄之間的格線間隔。