推薦開(kāi)發(fā)者使用 Material Design 組件

image

為了保證您的應(yīng)用與用戶設(shè)備中安裝的其他應(yīng)用在視覺(jué)和行為上保持一致,我們 推薦 您遵循 Material Design 規(guī)范,因?yàn)橛脩魪囊粋€(gè)應(yīng)用中學(xué)習(xí)的操作模式可以無(wú)縫銜接地在另一個(gè)應(yīng)用中使用。

Android 用戶希望您的應(yīng)用在視覺(jué)和行為上與系統(tǒng)保持一致。您在設(shè)計(jì)視覺(jué)和導(dǎo)航模式時(shí)應(yīng)該遵循 Material Design 規(guī)范…

—— d.android.com/design

您可以使用 Material Design Components (MDC) 組件庫(kù)來(lái) 實(shí)現(xiàn) 這一目的。本文將列出使用 MDC 的優(yōu)勢(shì),從而說(shuō)明我們推薦使用它的原因。

組件

image

MDC 提供了系統(tǒng)標(biāo)準(zhǔn)組件的 Material 版本,例如 ButtonsToolbars、CheckBox 等等,使用這些組件能輕松實(shí)現(xiàn) Material 風(fēng)格。如果您使用了 MaterialComponents 主題,當(dāng)您 inflate 一個(gè) layout (通過(guò) MDC 的 View Inflater) 時(shí),被實(shí)例化是 Material 組件而不是標(biāo)準(zhǔn)組件,因此您不需要對(duì)布局進(jìn)行重大的更新就能輕松實(shí)現(xiàn) Material 風(fēng)格。

<!-- Copyright 2019 Google LLC.
   SPDX-License-Identifier: Apache-2.0 -->

<!--  標(biāo)準(zhǔn)組件 Button 將會(huì)被替換為 MaterialButton -->
<Button ... />

<!-- 您甚至可以使用 MaterialButton 特定的屬性 -->
<Button ...
  app:icon="@drawable/foo"/>

<!--如果您想用具有向后兼容能力的 AppCompatButton 而不是 MaterialButton,您可以這樣做 -->
<androidx.appcompat.widget.AppCompatButton ... />

所有 Material 組件都繼承自對(duì)應(yīng)的 AppCompat 組件,因此它們享有相同的向后兼容能力和新版本的 bug 修復(fù)。

Material 組件在對(duì)應(yīng)的系統(tǒng)標(biāo)準(zhǔn)組件和 AppCompat 組件的基礎(chǔ)上拓展出更多樣式和功能,例如 MaterialButton 擁有以下多種樣式:

image
<!-- Copyright 2019 Google LLC.  
   SPDX-License-Identifier: Apache-2.0 -->

<!-- Contained button -->
<Button ... 
  style="?attr/materialButtonStyle"/>

<!-- Text button -->
<Button ... 
  style="?attr/borderlessButtonStyle"/>

<!-- Outlined button -->
<Button ... 
  style="?attr/materialButtonOutlinedStyle"/>

我最喜歡的功能之一是使用 MaterialTextView 替換 TextView,它 新增的功能 可以很方便地在 TextAppearance 中設(shè)置行高。

除了拓展現(xiàn)有組件的功能外,MDC 還提供了一系列全新的組件。您可能知道 Bottom NavigationBottom SheetFloating Action Button,但未必聽(tīng)說(shuō)過(guò) Chips、Date PickerTime Picker。

image

MDC 提供的全部組件列單,請(qǐng)查閱 —— 組件。

Material 主題

image

Material 主題 可以更系統(tǒng)地 自定義 Material Design 樣式來(lái)體現(xiàn)您的產(chǎn)品品牌。Material 主題包括 顏色字體樣式形狀 屬性。對(duì)其進(jìn)行自定義將自動(dòng)應(yīng)用到您用于構(gòu)建應(yīng)用的組件上。

您可以將 Material 主題理解為創(chuàng)建設(shè)計(jì)系統(tǒng)的設(shè)計(jì)系統(tǒng) ??。您只需配置好顏色、字體樣式和形狀,即可得到一套基于您品牌的完整設(shè)計(jì)系統(tǒng)。

Nick Rout 在以下文章中分別深入地介紹了這三個(gè)子系統(tǒng):

深色主題

image

MDC 組件遵循 Material 的 深色主題背景規(guī)范 實(shí)現(xiàn)了深色主題。在深色主題下,許多組件都將調(diào)整它們的顏色,并且在陰影不可見(jiàn)的情況下添加了 elevation 疊加層以表現(xiàn)高度變化。

Chris Banes 在下面這篇文章中深入介紹了 MDC 的深色主題:

Material 動(dòng)效 ??

image

Material Design 還針對(duì)轉(zhuǎn)場(chǎng)動(dòng)畫(huà)制定了規(guī)范?,F(xiàn)在,MDC 不僅提供了 規(guī)范,還將這些模式實(shí)現(xiàn)為 Transition 以便您在應(yīng)用中使用。

Hunter Stich 在下面這篇文章中介紹了 Material Motion 庫(kù):

使用 Compose

Jetpack Compose 是 Android 系統(tǒng)的下一代 UI 工具包,目前 已正式發(fā)布。它會(huì)提供 Material 風(fēng)格的組件和主題。盡早使用 MDC 將為未來(lái)遷移至 Jetpack Compose 做好準(zhǔn)備 — 它們使用了相同的概念、設(shè)計(jì)名詞和組件。您甚至可以使用類(lèi)似 MDC-Android Compose 主題適配器 的庫(kù)來(lái)簡(jiǎn)化遷移過(guò)程,該庫(kù)將 XML 實(shí)現(xiàn)的 MDC 主題轉(zhuǎn)換為 Compose 的 MaterialTheme。

推薦使用 Material

希望您已經(jīng)清楚我們推薦使用 Material Design Components 構(gòu)建 Android UI 的原因。我們 近期更新 了在 Android Studio 中通過(guò) File > New Project 菜單新建的模版,這些模版為您預(yù)設(shè)置了 Material 主題并使用了 MDC,因此您可以更容易的開(kāi)始使用 MDC。如果您還沒(méi)有遷移到 MDC,請(qǐng)查看我們的 遷移指南

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

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

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