Lists


列表由行構(gòu)成,行內(nèi)包含卡片。如果列表項(xiàng)內(nèi)容文字超過3行,請改用卡片。如果列表項(xiàng)的主要區(qū)別在于圖片,請改用網(wǎng)格。

列表包含主操作區(qū)與副操作區(qū)。副操作區(qū)位于列表右側(cè),其余都是主操作區(qū)。在同一個列表中,主、副操作區(qū)的內(nèi)容與位置要保持一致。

在同一個列表中,滑動手勢操作保持一致。

主操作區(qū)與副操作區(qū)的圖標(biāo)或圖形元素是列表控制項(xiàng),列表的控制項(xiàng)可以是勾選框、開關(guān)、拖動排序、展開/收起等操作,也可以包含快捷鍵提示、二級菜單等提示信息。
Menus

順序固定的菜單,操作頻繁的選項(xiàng)放在上面。順序可變的菜單,可以把之前用過的選項(xiàng)排在前面,動態(tài)排序。菜單盡量不要超過2級。

當(dāng)前不可用的選項(xiàng)要顯示出來,讓用戶知道在特定條件可以觸發(fā)這些操作。

菜單原地展開,蓋住當(dāng)前選項(xiàng),當(dāng)前選項(xiàng)應(yīng)該成為菜單的第一項(xiàng)。


菜單的當(dāng)前選項(xiàng),始終與當(dāng)前選項(xiàng)水平對齊。

靠近屏幕邊緣時,位置可適當(dāng)錯開。

菜單過長時,需要顯示滾動條。

菜單從當(dāng)前選項(xiàng)固定位置展開,不要跟隨點(diǎn)擊位置改變。

菜單到上下留出8dp距離。
Pickers


日期和時間選擇器是固定組件,在小屏幕設(shè)備中,通常以對話框形式展現(xiàn)。
Progress & activity

線形進(jìn)度條只出現(xiàn)在紙片的邊緣。

環(huán)形進(jìn)度條也分時間已知和時間未知兩種。

環(huán)形進(jìn)度條可以用在懸浮按鈕上。

加載詳細(xì)信息時,也可以使用進(jìn)度條。

下拉刷新的動畫比較特殊,列表不動,出現(xiàn)一張帶有環(huán)形進(jìn)度條的紙片。
Sliders

滑塊左右兩邊可以放置圖標(biāo)。

或是可編輯文本框。

非連續(xù)的滑塊,需要標(biāo)出具體數(shù)值。
Snackbars & toasts

Snackbars至多包含一個操作項(xiàng),不能包含圖標(biāo)。不能出現(xiàn)一個以上的Snackbars。
Snackbars在移動設(shè)備上,出現(xiàn)在底部。在PC上,應(yīng)該懸浮在屏幕左下角。

不一定要用戶響應(yīng)的提示,可以使用Snackbars。非常重要的提示,必須用戶來決定的,應(yīng)該用對話框。

Snackbars不能遮擋住懸浮按鈕,懸浮按鈕要上移讓出位置。

Snackbars的留白比較大,24dp。

toasts和Snackbars類似,樣式和位置可以自定義,建議遵循Snackbars的規(guī)則設(shè)計。
Subheaders

小標(biāo)題是列表或網(wǎng)格中的特殊瓦片,描述列表內(nèi)容的分類、排序等信息。

滾動時,如果列表較長,小標(biāo)題會固定在頂部,直到下一個小標(biāo)題將它頂上去。

存在浮動按鈕時,小標(biāo)題要讓出位置,與文字對齊。
Switches

必須所有選項(xiàng)保持可見時,才用Radio button。不然可以使用下拉菜單,節(jié)省空間。

在同一個列表中有多項(xiàng)開關(guān),建議使用Checkbox。

單個開關(guān)項(xiàng)建議使用Switch。
Tabs

tab只用來展現(xiàn)不同類型的內(nèi)容,不能當(dāng)導(dǎo)航菜單使用。tab至少2項(xiàng),至多6項(xiàng)。

超出6項(xiàng),tab需要變?yōu)闈L動式,左右翻頁。

tab文字要顯示完整,字號保持一致,不能折行,文字與圖標(biāo)不能混用。
tab選中項(xiàng)的下劃線高度是2dp。
Text fields

簡單一根橫線就能代表輸入框,可以帶圖標(biāo)。

激活狀態(tài)和錯誤狀態(tài),橫線的寬度變?yōu)?dp,顏色改變。

輸入框點(diǎn)擊區(qū)域高度至少48dp,但橫線并不在點(diǎn)擊區(qū)域的底部,還有8dp距離。

輸入框提示文字,可以在輸入內(nèi)容后,縮小停留在輸入框左上角。

整個點(diǎn)擊區(qū)域增高,提示文字也是點(diǎn)擊區(qū)域的一部分。

通欄輸入框是沒有橫線的,這種情況下通常有分隔線將輸入框隔開。


右下角可以加入字?jǐn)?shù)統(tǒng)計。字?jǐn)?shù)統(tǒng)計不要默認(rèn)顯示,字?jǐn)?shù)接近上限時再顯示出來。

通欄輸入框也可以有字?jǐn)?shù)統(tǒng)計,單行的字?jǐn)?shù)統(tǒng)計顯示在同一行右側(cè)。


錯誤提示顯示在輸入框的左下方。默認(rèn)提示文本可以轉(zhuǎn)換為錯誤提示。

字?jǐn)?shù)限制與錯誤提示都會使點(diǎn)擊區(qū)域增高。

同時有多個輸入框錯誤時,頂部要有一個全局的錯誤提示。


輸入框盡量帶有自動補(bǔ)全功能。
Tooltips

提示只用在小圖標(biāo)上,文字不需要提示。鼠標(biāo)懸停、獲得焦點(diǎn)、手指長按都可以觸發(fā)提示。

上圖是錯誤例子。提示不能包含富文本,不需要三角箭頭。

觸摸提示(左)和鼠標(biāo)提示(右)的尺寸是不同的,背景都帶有90%的透明度。
Navigation drawer

側(cè)邊抽屜從左側(cè)滑出,占據(jù)整個屏幕高度,遵循普通列表的布局規(guī)則。手機(jī)端的側(cè)邊抽屜距離屏幕右側(cè)56dp。


側(cè)邊抽屜支持滾動。如果內(nèi)容過長,設(shè)置和幫助反饋可以固定在底部。抽屜收起時,會保留之前的滾動位置。

列表較短不需要滾動時,設(shè)置和幫助反饋跟隨在列表后面。
十、設(shè)置界面


設(shè)置和幫助反饋通常放在側(cè)邊抽屜中。如果沒有側(cè)邊抽屜,則放在Appbar的下拉菜單底部。
設(shè)置界面只能包含設(shè)置項(xiàng),諸如關(guān)于、反饋之類的界面,入口應(yīng)該放在其他地方。

設(shè)置項(xiàng)使用通欄分隔線來分組。7項(xiàng)以下不必分組。如果某項(xiàng)獨(dú)立一組,考慮把它放在頂部(重要)或放在底部的“其他”一欄中(不重要)。設(shè)置項(xiàng)較多時嘗試合并,比如把兩個相關(guān)的勾選項(xiàng)合并成一個多選項(xiàng)。設(shè)置項(xiàng)非常多時,使用子界面。
十一、易用性
無障礙設(shè)計
material design很重視用戶的廣度,應(yīng)該盡量照顧到殘障人士的體驗(yàn)。設(shè)計時考慮以下使用場景:
● 沒有聲音
●沒有色彩
●手機(jī)開啟了高對比度模式
●手機(jī)畫面放大
●沒有視覺信息,使用屏幕閱讀器
●只能通過語音控制
●以上多項(xiàng)結(jié)合
并注意以下問題:
●無鼠標(biāo)、純鍵盤操作。鼠標(biāo)懸停顯示信息,也要通過其他方式展現(xiàn)。
●考慮大字號情況下的使用體驗(yàn)。
●不要只通過顏色表達(dá)某些信息。
●音頻信息也要提供文字或其他視覺呈現(xiàn)。
●為圖片和視頻提供備用的文字信息。
本地化

為阿拉伯語、希伯來語、波斯語用戶設(shè)計相反的界面,他們的書寫和閱讀習(xí)慣是從右到左的。