最全面Android 導(dǎo)航模式解析
任何在用戶界面模擬載體移動(dòng)的場景便是導(dǎo)航。
使用應(yīng)用程序?qū)蓚€(gè)用戶屏幕連接到一起,便是一種導(dǎo)航。這個(gè)連接——無論它是什么——即是用戶用來運(yùn)送信息的載具。盡管創(chuàng)建一個(gè)導(dǎo)航很簡單,但是去創(chuàng)造一個(gè)適當(dāng)?shù)膶?dǎo)航并不容易。本文我們將研究一些 Android 上最常用的導(dǎo)航模式,解讀它們是如何影響底層導(dǎo)航,如何正確的使用這些模式讓它來符合用戶的需求。
1 定義導(dǎo)航在看一些常見導(dǎo)航模式之前,先回顧一下關(guān)于軟件導(dǎo)航的重點(diǎn)是有必要的。
導(dǎo)航的設(shè)計(jì)規(guī)范材料對(duì)于如何定義導(dǎo)航結(jié)構(gòu)有著很好的幫助。但為了這個(gè)文章通俗易懂,我們可以將所有內(nèi)容歸納為兩個(gè)簡單的點(diǎn):
建議基于導(dǎo)航的任務(wù)與內(nèi)容;
建立給用戶使用的導(dǎo)航。
基于任務(wù)和內(nèi)容構(gòu)建導(dǎo)航意味著需要分解人們將要執(zhí)行的任務(wù),以及他們將會(huì)看到什么,并繪制出兩者之間的關(guān)系。弄清任務(wù)之間的聯(lián)系;優(yōu)先級(jí);嵌套關(guān)系和觸發(fā)頻率。
這便是導(dǎo)航設(shè)計(jì)開始的地方。設(shè)計(jì)導(dǎo)航應(yīng)該讓用戶體驗(yàn),并讓用戶來評(píng)價(jià)此導(dǎo)航的好壞。因?yàn)閷?dǎo)航設(shè)計(jì)出來是為了方便用戶使用。
一旦明白了軟件中的任務(wù)是如何共同工作的,你應(yīng)當(dāng)開始考慮如何向用戶展現(xiàn)那些他們希望的看到的內(nèi)容。此鍛煉將為未來選擇導(dǎo)航模式提供基礎(chǔ)經(jīng)驗(yàn)。
2 標(biāo)簽定義
標(biāo)簽可以提供同一父屏中兄弟標(biāo)簽之間視圖的快速導(dǎo)航。他們是在同一個(gè)層面的,這也意味著它們可被刷新,拓展,識(shí)別。
標(biāo)簽非常適合過濾,分割或使相關(guān)內(nèi)容間的深度更明顯。不相關(guān)的內(nèi)容片段或具有其自身深層次的內(nèi)容不適用于此類導(dǎo)航。
標(biāo)簽樣例
Play Music(左上)使用標(biāo)簽來增加音樂庫的深度,以不同的方式組織相同的一般內(nèi)容以適應(yīng)不同的探索手段。
Google+(中)使用標(biāo)簽來分割收藏集,這是一種單一的內(nèi)容類型,可以在應(yīng)用程序的不同導(dǎo)航分類中提供截然不同的內(nèi)容。
Play Newsstand(右上)使用標(biāo)簽來在選項(xiàng)卡上呈現(xiàn)不同的相同信息集。一個(gè)選項(xiàng)卡提供了一個(gè)整體,多層次的集合;而另一個(gè)則顯示了一組精簡的標(biāo)題。
歷史記錄
標(biāo)簽一般在父屏的同一個(gè)層面上。因此,標(biāo)簽之間的導(dǎo)航不應(yīng)該有返回,歷史,上一步按鈕。
3 抽屜導(dǎo)航定義
抽屜導(dǎo)航通常是連接到畫布左邊緣的垂直窗格。繪制者可以定義其顯示在屏幕外屏幕內(nèi);持續(xù)存在的或非持續(xù)存在。但它們總是具有一些共同的特征。
通常情況下,導(dǎo)航欄列表會(huì)列出作為對(duì)等體或兄弟節(jié)點(diǎn)的父目標(biāo)。導(dǎo)航欄具有多個(gè)主要目標(biāo),以及一些獨(dú)特的目標(biāo),如設(shè)置或幫助。
如果將抽屜與另一個(gè)主要導(dǎo)航組件(例如底部導(dǎo)航)組合,則抽屜可以包含輔助目標(biāo),或者包含底部導(dǎo)航不能直接訪問的重要目標(biāo)。
使用導(dǎo)航欄時(shí),請(qǐng)注意需要呈現(xiàn)的內(nèi)容是什么。添加太多選項(xiàng)或代表應(yīng)用層次結(jié)構(gòu)中不同級(jí)別的選項(xiàng)可能會(huì)令人疑惑。
還要注意可視性。抽屜可以很好地降低可視性或壓縮遠(yuǎn)離主要內(nèi)容區(qū)域的導(dǎo)航,但這也可能是一個(gè)缺點(diǎn)。它的好壞取決于具體的情況。
抽屜導(dǎo)航樣例
Play Store(左上)使用抽屜來展示不同的商店分類,每一個(gè)抽屜都導(dǎo)航到另一個(gè)不同的內(nèi)容。
Google Camera(中間)使用抽屜來訪問別的目的地。目的地包含提升用戶拍照體驗(yàn)以及設(shè)置。
Inbox(右上)的抽屜很長。最上方式其主要訪問目的地,下方則是一些實(shí)用工具和拓展包。
因?yàn)槌閷蠈?dǎo)航可能會(huì)很長,因此設(shè)置,幫助與反饋按鈕一般方向某一個(gè)固定的位置以方便用戶訪問。
訪問記錄
當(dāng)應(yīng)用程序具有不同的首頁地址是,導(dǎo)航抽屜應(yīng)當(dāng)為系統(tǒng)的返回按鈕創(chuàng)建歷史記錄。在 Play Store 中,家庭目的地是 Apps & Games,然而實(shí)際的查看內(nèi)容是根據(jù)用戶使用歷史來決定的。
Google Camera 選擇在用戶按返回鍵時(shí)返回主界面。在這種模式下可以減少誤操作。
谷歌地圖也使用了同樣的方法。抽屜中的所有目的地都指向某一個(gè)分層,所有返回鍵可以永遠(yuǎn)返回主頁。
你可能注意到,Play Store 并沒有改變?nèi)魏蔚纳隙藢?dǎo)航抽屜。這是因?yàn)樗鼈兪峭粋€(gè)分級(jí)。用戶在不點(diǎn)擊導(dǎo)航的情況下是無法進(jìn)入下一層的,因?yàn)槎际窃谄聊蛔钌蠈樱徊贿^是平行的而已。
4 按鈕導(dǎo)航定義
在 Android 中,底部導(dǎo)航通常由3或5個(gè)主要目的地按鈕組成。值得注意的是,更多按鈕并不是一個(gè)導(dǎo)航,也不是菜單或者對(duì)話。
當(dāng)應(yīng)用程序的數(shù)量并有有限數(shù)量不同的頂級(jí)目標(biāo)(底部導(dǎo)航不應(yīng)滾動(dòng))需要立即訪問時(shí),底部導(dǎo)航最有效。 “底欄”的主要優(yōu)點(diǎn)之一是可以立即從子屏幕跳轉(zhuǎn)到不相關(guān)的父屏幕,而無需首先導(dǎo)航到當(dāng)前的父級(jí)。
不得不注意的是,盡管底部欄中的目標(biāo)位置應(yīng)該在應(yīng)用程序的導(dǎo)航層次結(jié)構(gòu)中都是相等的,但底部欄中的項(xiàng)目不是共面的,他們不應(yīng)該這樣顯示。
底部欄切換建立了不相干目的地之間的聯(lián)系。每個(gè)目的地都是同等父輩關(guān)系,而不是兄弟姐妹。如果程序中的目的地與此類詞,則他們可能更適合使用選項(xiàng)卡來處理。
底部導(dǎo)航案例
底層導(dǎo)航有一些有趣的考慮,超出其基本定義。可能最復(fù)雜的是底層導(dǎo)航是否應(yīng)該持續(xù)存在的問題。與許多設(shè)計(jì)決策一樣,答案是“看情況”。
在有些程序里,導(dǎo)航欄是被隱藏的,但是也有底層導(dǎo)航持續(xù)存在的情況。這取決于軟件的層次結(jié)構(gòu)。如果層次結(jié)構(gòu)很淺,或者應(yīng)用程序想使用戶體驗(yàn)更深刻,則可能隱藏底部導(dǎo)航欄。
額外的考慮
如果底部導(dǎo)航欄在整個(gè)應(yīng)用程序中持續(xù)存在,則下一個(gè)需要考慮的邏輯問題是使用該欄在目的地之間跳轉(zhuǎn)時(shí)的行為。如果用戶是從一個(gè)目的的層次結(jié)構(gòu)中的更深層次,切換到另一個(gè)目的地,然后切換回第一個(gè)目標(biāo),則應(yīng)該看到什么?父屏幕,還是他們離開的子屏幕?
這個(gè)決定應(yīng)該由使用你的應(yīng)用程序的人決定。一般來說,點(diǎn)擊底部欄中的項(xiàng)目應(yīng)該直接轉(zhuǎn)到關(guān)聯(lián)的屏幕,而不是更深層次的層次結(jié)構(gòu),但是與其他方案一樣,這并不準(zhǔn)確。
歷史記錄
按鈕導(dǎo)航不應(yīng)該創(chuàng)建任何的歷史記錄。用戶按下一個(gè)按鈕,應(yīng)當(dāng)直接將用戶導(dǎo)航至相關(guān)的目的地,或者返回上級(jí),又或者刷新整個(gè)頁面。
5 上下文導(dǎo)航定義
上下文導(dǎo)航由上述組件之外的任何導(dǎo)航交互組成。這類組件包括諸如按鈕,標(biāo)題,卡片以及使用戶在應(yīng)用程序其他位置的任何其他內(nèi)容。
上下文導(dǎo)航通常比上述導(dǎo)航更不線性。用戶的交互傳可以傳輸?shù)讲煌膶哟谓Y(jié)構(gòu),不同步驟之間的離散層次結(jié)構(gòu),或者完全脫離應(yīng)用程序。
上下文導(dǎo)航案例
在左上的時(shí)鐘軟件中,可以通過上下文導(dǎo)航訪問世界時(shí)鐘;在 Google 中,選項(xiàng)卡是可以被點(diǎn)擊的;在 Google Calendar 中,可以創(chuàng)建一個(gè)事件。
點(diǎn)擊時(shí)鐘軟件中的按鈕后,會(huì)將用戶帶到一個(gè)世界時(shí)鐘選項(xiàng)界面;點(diǎn)擊谷歌選項(xiàng)卡后,會(huì)給用戶展示更加詳細(xì)的天氣信息;點(diǎn)擊創(chuàng)建事件后,會(huì)向用戶展示事件細(xì)節(jié)。
歷史記錄
對(duì)于上下文導(dǎo)航,并沒有規(guī)定能否使用歷史記錄。是否創(chuàng)建歷史完全取決于上下文導(dǎo)航的位置以及應(yīng)用程序是如何使用上下文導(dǎo)航的。如果不知道應(yīng)當(dāng)創(chuàng)建什么樣的歷史記錄,了解上下按鈕的作用會(huì)有所幫助。
6 向上,返回和關(guān)閉按鈕返回,向上與關(guān)閉按鈕在安卓用戶界面中起到了很重要的作用,然而經(jīng)常被誤解。從用戶體驗(yàn)來說,這三個(gè)按鈕的作用是很簡單的。
向上鍵:當(dāng)用戶想返回上級(jí)菜單時(shí),出現(xiàn)在軟件的工具欄中。它是根據(jù)時(shí)間順序進(jìn)行導(dǎo)航的層次結(jié)構(gòu)。當(dāng)用戶持續(xù)點(diǎn)按時(shí),它將根據(jù)時(shí)間順序持續(xù)返回知道到達(dá)父屏幕。由于父屏幕無法再往上,所有它不應(yīng)該出現(xiàn)在父屏幕。
返回鍵:始終存在于系統(tǒng)導(dǎo)航欄中。即使以前的時(shí)間順序屏幕在另一個(gè)應(yīng)用程序中,它將按時(shí)間順序向后導(dǎo)航,而不考慮應(yīng)用程序?qū)哟谓Y(jié)構(gòu)。它還會(huì)關(guān)閉臨時(shí)元素,如對(duì)話框,底部工作表和覆蓋的內(nèi)容。
關(guān)閉鍵:通常用于關(guān)閉界面的瞬態(tài)層或放棄對(duì)全屏對(duì)話框的更改。在Google Calendar中的(如下所示),較大的屏幕上,將關(guān)閉鍵放在左上角可以使整個(gè)界面更加清晰。在收件箱(以下)中,從收件箱到郵件的轉(zhuǎn)換表明郵件是收件箱頂部的一層,因此用戶可以理解要關(guān)閉的是哪一層。 Gmail(以下)將郵件定位為一個(gè)獨(dú)立的級(jí)別,所以使用向上按鈕。
在本文的引言中,我們看到了成功使用各種顯式導(dǎo)航組件的應(yīng)用示例。這些許多示例成功地將導(dǎo)航模式組合以形成對(duì)用戶更有意義的結(jié)構(gòu)。
可能最明顯的案例是Google+,它基本融合了所有文中敘述過的導(dǎo)航模式——標(biāo)簽導(dǎo)航,抽屜導(dǎo)航,底部導(dǎo)航,上下文導(dǎo)航。
將其拆開來看,底部的導(dǎo)航是G +。它可以訪問四個(gè)頂級(jí)目的地。標(biāo)簽通過將其內(nèi)容分為明確的類別來增加其中的目的地。導(dǎo)航欄包含其余的主要和次要目的地,可能訪問頻率較低。
Play Store主要使用抽屜導(dǎo)航,頻繁使用上下文導(dǎo)航,偶爾使用標(biāo)簽。
Google Calendar使用了抽屜導(dǎo)航與上下文導(dǎo)航。使用的方式都很巧妙。日歷中的抽離導(dǎo)航?jīng)]有標(biāo)準(zhǔn),基本是用于拓展日歷。日歷本身由一個(gè)可拓展的工具欄所控制,并有不同的顏色進(jìn)行分類。
8 總結(jié)導(dǎo)航這個(gè)話題本身就很復(fù)雜。希望此文章可以給想了解 Android 導(dǎo)航的人提供一個(gè)良好的基礎(chǔ)。
來自:http://www.uml.org.cn/mobiledev/201707213.asp
相關(guān)文章:
1. php5.6不能擴(kuò)展redis.so的解決方法2. python 爬取嗶哩嗶哩up主信息和投稿視頻3. js實(shí)現(xiàn)貪吃蛇小游戲(加墻)4. 使用idea 去除 html 代碼前的行號(hào)和空行的方法詳解5. SpringBoot 開發(fā)提速神器 Lombok+MybatisPlus+SwaggerUI6. js實(shí)現(xiàn)跳一跳小游戲7. PHP設(shè)計(jì)模式(四)原型模式Prototype實(shí)例詳解【創(chuàng)建型】8. JVM之class文件結(jié)構(gòu)9. 10個(gè)提供免費(fèi)PHP腳本下載的網(wǎng)站10. Python編寫nmap掃描工具
