Android 裝置種類繁多,外型和螢幕大小各異,因此設計特定像素完美的鎖定圖文標誌不僅無效,還可能對使用者體驗造成負面影響。請改為設計、建構及思考如何適應。我們最近推出了新的 API,導入一些熟悉的設計概念,協助您建構自適應版面配置。
Pawparazzi 範例應用程式會展示這些概念。這個應用程式的設計和建構宗旨,是使用 Grid 和 Flexbox 等適應性 API,突顯適應性設計。

自動調整式設計不僅是使用中斷點設計,更是以彈性容器思考內容。
一切皆為格線!
有了內容結構的基礎,就能採用良好的設計做法,並決定內容的調整方式。Android 具有基礎的 8 dp 基準格線,我們可以在微觀層級將所有內容對齊這條格線。
Pawparazzi 使用階層式版面配置格線,而非平均模組化格線或單向欄格線,這表示構成格線的欄和列是根據內容階層決定。

決定格線類型時,應考量內容。從應用程式內容著手,思考內容的分類方式。這有助於決定整體版面配置結構。如要進一步瞭解如何以窗格思考,請參閱「格線和單元」、「內容結構」和「開始使用電腦版」。
在 Pawparazzi 中,主要目標是以各種方式查看團隊的寵物,首先是寵物總覽、寵物詳細資料,然後是寵物排名。這表示寵物相片庫會佔據主要內容窗格和更多格線空間,接著才是導覽和篩選器元素。有更多空間時,相簿就能擴展到更多列,顯示更多寵物,並同時顯示寵物詳細資料。這項適應性原則是揭露,也就是在較大的版面配置上顯示更多內容。
查看應用程式的主要目標和內容後,有助於判斷版面配置格線需要適應的方式和時間:哪些視窗類別大小、螢幕轉軸位置和裝置方向。
在版面格線中,子格線有助於建構更彈性的內容結構。 相片庫本身就是網格。如果是精簡尺寸,則會使用 2 格的格線。

格線是雙向版面配置概念,因此內容可以水平和垂直方向流動。

這項功能可用於建立更有趣的版面配置,或呈現更清楚的視覺階層,例如「本週最佳寵物」的網格,可顯示排名最高的寵物。格線可能是 2x4,但頂端位置會跨越 2 個資料欄和資料列。
所有這些作業都是透過 Grid API 完成。

彈性運用這些元件
格線涵蓋巨觀和微觀內容結構,而彈性方塊則有助於處理需要回應內容的元件。這項屬性適用於單向內容,也就是只能是水平或垂直。舉例來說,篩選器晶片可以回應標籤,篩選器區域則可根據篩選器數量展開。在大螢幕上使用「顯示」功能,一次顯示更多篩選器。

細微差異查詢
設計版面配置格線並使用格線和彈性方塊,即可針對多個螢幕自動調整版面配置,甚至還能配合摺疊式裝置等特殊外型。但不同使用者環境呢?Android 使用者可以連接螢幕或插入滑鼠!MediaQuery 可讓我們做出細微的設計決策,以配合各種情境下的使用者。
在 Pawparazzi 中,這表示要善用精確指標輸入,並縮小目標區域和增加內容密度。

