今天的這幾個控制項的中文名字,在網上查了半天,沒有找到統一的叫法,所以自己翻譯了一下:簡易菜單對應的是MD(Material Design,下同)中的Simple Menu;簡易對話框,對應的是MD中的Simple Dialog,彈出框對應的是iOS中的Popover。
按照慣例,我們還是從MD的控制項開始說起。
Google Material Design Guideline首先,什麼是簡易菜單呢?先放一個例子出來嚇唬嚇唬人:
簡易菜單(Simple Menu)
好像例子根本沒有任何可怕的點。賤笑了。。。說明一下上面的例子,簡易菜單,就是在用戶當前操作的位置出現的選項集合。它有以下幾個規則:
消失規則:當用戶選擇了某個選項,簡易菜單立刻消失;當用戶點擊簡易菜單之外的區域,或者點擊安卓系統的返回按鈕,則簡易菜單消失。
展現規則:簡易菜單應該出現在入口的正上方,也就是覆蓋住入口。
這一條在國內的安卓系統中經常被錯用,比如下面這種情況:
點擊右上角的三個點,則菜單覆蓋在三個點的正上方
國內很多安卓版本的應用,點擊三個點之後,菜單是出現在三個點的下方。如果僅僅是從MD規範的角度來說,這是不太規範的做法。
另外,簡易菜單還有一個展現原則,要把當前已經選擇的選項展現在入口的正上方,就像下面這樣:
選項中的第三個,是當前已選擇選項。點擊入口後,第三個選項位於入口的正上方
下面是一個反例:
在上圖中,當前已選擇的是第二個選項。但是點擊入口打開簡易菜單,是第一個選項出現在入口的正上方,所以是錯誤的。
但是,也有例外,如果菜單的入口剛好位於頁面的邊緣位置,導致當前頁面展現不下簡易菜單了,則不必遵循「當前已選選項必須在入口正上方」這個原則,比如下面這個例子:
點擊Voice search,在當前位置無法展現完整的簡易菜單,因此當前已選選項「English」沒有覆蓋在入口(Voice search)的正上方
以上就是簡易菜單的用法。
簡易對話框和簡易菜單是很相似的,因為它們的功能都是一樣的:提供一系列選項。
所不同的是,簡易對話框除了可以提供選項之外,還可以提供一些相關的操作。另外,在簡易對話框中,可以展現頭像、圖標(icon)、一條選項中的說明性文字、其它操作(比如上圖中的「添加聯繫人」按鈕)。簡易對話框的呼出方式,可以是點擊或者長按,而簡易菜單一般是點擊。
由於簡易對話框出現在屏幕的中央,比簡易菜單更加打擾用戶。所以MD規範簡易,儘量使用簡易菜單而不是簡易對話框。
iOS Human Interface Design Guideline彈出框(Popovers)最開始是只建議用在iPad上的一種控制項,最近由於手機屏幕越來越大,也由於安卓和iOS兩種規範的混用,也越來越多地出現在iOS應用裡,比如下面這個例子:
可以看到,iOS的彈出框和Android的菜單比較相似,但iOS的彈出框是出現在入口的下面的,且要有箭頭,指示入口的位置。
關於彈出框,需要注意以下幾點:
一次只能出現一個彈出框。如果一個操作激發了另一個彈出框,則進行該操作的時候,立即關閉當前彈出框,然後再出現新的彈出框。
彈出框上面不能覆蓋別的控制項,警告框除外。
一般來說,在彈出框上進行了操作,則彈出框關閉。如果需要增加「放棄操作」或者「確認操作」的功能,則可增加「取消」、「完成」這樣的按鈕。如果在彈出框裡可以進行多項選擇的操作,則需用戶點擊了「取消」、「完成」或者點擊彈出框以外的區域關閉彈出框。
以上對比了簡單菜單、簡單對話框以及iOS中的彈出框。順提一句,討論能讓我們的認識更深刻,也更全面。歡迎大家留言討論。
相關閱讀iOS和Android規範解析——提示框(Toast)對比
iOS和Android規範解析——警告框(Alerts)對比
iOS和Android規範解析——底部浮層(上)
iOS和Android規範解析——底部浮層(下)
德國海龜一枚🐢 ,曾任職於騰訊微生活、網易、宜信等公司。現為愛奇藝高級互動設計師。歡迎關注。