最全面Android 導(dǎo)航模式解析
任何在用戶界面模擬載體移動的場景便是導(dǎo)航。
使用應(yīng)用程序?qū)蓚€用戶屏幕連接到一起,便是一種導(dǎo)航。這個連接——無論它是什么——即是用戶用來運送信息的載具。盡管創(chuàng)建一個導(dǎo)航很簡單,但是去創(chuàng)造一個適當(dāng)?shù)膶?dǎo)航并不容易。本文我們將研究一些 Android 上最常用的導(dǎo)航模式,解讀它們是如何影響底層導(dǎo)航,如何正確的使用這些模式讓它來符合用戶的需求。
1 定義導(dǎo)航在看一些常見導(dǎo)航模式之前,先回顧一下關(guān)于軟件導(dǎo)航的重點是有必要的。
導(dǎo)航的設(shè)計規(guī)范材料對于如何定義導(dǎo)航結(jié)構(gòu)有著很好的幫助。但為了這個文章通俗易懂,我們可以將所有內(nèi)容歸納為兩個簡單的點:
建議基于導(dǎo)航的任務(wù)與內(nèi)容;
建立給用戶使用的導(dǎo)航。
基于任務(wù)和內(nèi)容構(gòu)建導(dǎo)航意味著需要分解人們將要執(zhí)行的任務(wù),以及他們將會看到什么,并繪制出兩者之間的關(guān)系。弄清任務(wù)之間的聯(lián)系;優(yōu)先級;嵌套關(guān)系和觸發(fā)頻率。
這便是導(dǎo)航設(shè)計開始的地方。設(shè)計導(dǎo)航應(yīng)該讓用戶體驗,并讓用戶來評價此導(dǎo)航的好壞。因為導(dǎo)航設(shè)計出來是為了方便用戶使用。
一旦明白了軟件中的任務(wù)是如何共同工作的,你應(yīng)當(dāng)開始考慮如何向用戶展現(xiàn)那些他們希望的看到的內(nèi)容。此鍛煉將為未來選擇導(dǎo)航模式提供基礎(chǔ)經(jīng)驗。
2 標(biāo)簽定義
標(biāo)簽可以提供同一父屏中兄弟標(biāo)簽之間視圖的快速導(dǎo)航。他們是在同一個層面的,這也意味著它們可被刷新,拓展,識別。
標(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àn)不同的相同信息集。一個選項卡提供了一個整體,多層次的集合;而另一個則顯示了一組精簡的標(biāo)題。
歷史記錄
標(biāo)簽一般在父屏的同一個層面上。因此,標(biāo)簽之間的導(dǎo)航不應(yīng)該有返回,歷史,上一步按鈕。
3 抽屜導(dǎo)航定義
抽屜導(dǎo)航通常是連接到畫布左邊緣的垂直窗格。繪制者可以定義其顯示在屏幕外屏幕內(nèi);持續(xù)存在的或非持續(xù)存在。但它們總是具有一些共同的特征。
通常情況下,導(dǎo)航欄列表會列出作為對等體或兄弟節(jié)點的父目標(biāo)。導(dǎo)航欄具有多個主要目標(biāo),以及一些獨特的目標(biāo),如設(shè)置或幫助。
如果將抽屜與另一個主要導(dǎo)航組件(例如底部導(dǎo)航)組合,則抽屜可以包含輔助目標(biāo),或者包含底部導(dǎo)航不能直接訪問的重要目標(biāo)。
使用導(dǎo)航欄時,請注意需要呈現(xiàn)的內(nèi)容是什么。添加太多選項或代表應(yīng)用層次結(jié)構(gòu)中不同級別的選項可能會令人疑惑。
還要注意可視性。抽屜可以很好地降低可視性或壓縮遠(yuǎn)離主要內(nèi)容區(qū)域的導(dǎo)航,但這也可能是一個缺點。它的好壞取決于具體的情況。
抽屜導(dǎo)航樣例
Play Store(左上)使用抽屜來展示不同的商店分類,每一個抽屜都導(dǎo)航到另一個不同的內(nèi)容。
Google Camera(中間)使用抽屜來訪問別的目的地。目的地包含提升用戶拍照體驗以及設(shè)置。
Inbox(右上)的抽屜很長。最上方式其主要訪問目的地,下方則是一些實用工具和拓展包。
因為抽屜導(dǎo)航可能會很長,因此設(shè)置,幫助與反饋按鈕一般方向某一個固定的位置以方便用戶訪問。
訪問記錄
當(dāng)應(yīng)用程序具有不同的首頁地址是,導(dǎo)航抽屜應(yīng)當(dāng)為系統(tǒng)的返回按鈕創(chuàng)建歷史記錄。在 Play Store 中,家庭目的地是 Apps & Games,然而實際的查看內(nèi)容是根據(jù)用戶使用歷史來決定的。
Google Camera 選擇在用戶按返回鍵時返回主界面。在這種模式下可以減少誤操作。
谷歌地圖也使用了同樣的方法。抽屜中的所有目的地都指向某一個分層,所有返回鍵可以永遠(yuǎn)返回主頁。
你可能注意到,Play Store 并沒有改變?nèi)魏蔚纳隙藢?dǎo)航抽屜。這是因為它們是同一個分級。用戶在不點擊導(dǎo)航的情況下是無法進入下一層的,因為都是在屏幕最上層,只不過是平行的而已。
4 按鈕導(dǎo)航定義
在 Android 中,底部導(dǎo)航通常由3或5個主要目的地按鈕組成。值得注意的是,更多按鈕并不是一個導(dǎo)航,也不是菜單或者對話。
當(dāng)應(yīng)用程序的數(shù)量并有有限數(shù)量不同的頂級目標(biāo)(底部導(dǎo)航不應(yīng)滾動)需要立即訪問時,底部導(dǎo)航最有效。 “底欄”的主要優(yōu)點之一是可以立即從子屏幕跳轉(zhuǎn)到不相關(guān)的父屏幕,而無需首先導(dǎo)航到當(dāng)前的父級。
不得不注意的是,盡管底部欄中的目標(biāo)位置應(yīng)該在應(yīng)用程序的導(dǎo)航層次結(jié)構(gòu)中都是相等的,但底部欄中的項目不是共面的,他們不應(yīng)該這樣顯示。
底部欄切換建立了不相干目的地之間的聯(lián)系。每個目的地都是同等父輩關(guān)系,而不是兄弟姐妹。如果程序中的目的地與此類詞,則他們可能更適合使用選項卡來處理。
底部導(dǎo)航案例
底層導(dǎo)航有一些有趣的考慮,超出其基本定義。可能最復(fù)雜的是底層導(dǎo)航是否應(yīng)該持續(xù)存在的問題。與許多設(shè)計決策一樣,答案是“看情況”。
在有些程序里,導(dǎo)航欄是被隱藏的,但是也有底層導(dǎo)航持續(xù)存在的情況。這取決于軟件的層次結(jié)構(gòu)。如果層次結(jié)構(gòu)很淺,或者應(yīng)用程序想使用戶體驗更深刻,則可能隱藏底部導(dǎo)航欄。
額外的考慮
如果底部導(dǎo)航欄在整個應(yīng)用程序中持續(xù)存在,則下一個需要考慮的邏輯問題是使用該欄在目的地之間跳轉(zhuǎn)時的行為。如果用戶是從一個目的的層次結(jié)構(gòu)中的更深層次,切換到另一個目的地,然后切換回第一個目標(biāo),則應(yīng)該看到什么?父屏幕,還是他們離開的子屏幕?
這個決定應(yīng)該由使用你的應(yīng)用程序的人決定。一般來說,點擊底部欄中的項目應(yīng)該直接轉(zhuǎn)到關(guān)聯(lián)的屏幕,而不是更深層次的層次結(jié)構(gòu),但是與其他方案一樣,這并不準(zhǔn)確。
歷史記錄
按鈕導(dǎo)航不應(yīng)該創(chuàng)建任何的歷史記錄。用戶按下一個按鈕,應(yīng)當(dāng)直接將用戶導(dǎo)航至相關(guān)的目的地,或者返回上級,又或者刷新整個頁面。
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)航案例
在左上的時鐘軟件中,可以通過上下文導(dǎo)航訪問世界時鐘;在 Google 中,選項卡是可以被點擊的;在 Google Calendar 中,可以創(chuàng)建一個事件。
點擊時鐘軟件中的按鈕后,會將用戶帶到一個世界時鐘選項界面;點擊谷歌選項卡后,會給用戶展示更加詳細(xì)的天氣信息;點擊創(chuàng)建事件后,會向用戶展示事件細(xì)節(jié)。
歷史記錄
對于上下文導(dǎo)航,并沒有規(guī)定能否使用歷史記錄。是否創(chuàng)建歷史完全取決于上下文導(dǎo)航的位置以及應(yīng)用程序是如何使用上下文導(dǎo)航的。如果不知道應(yīng)當(dāng)創(chuàng)建什么樣的歷史記錄,了解上下按鈕的作用會有所幫助。
6 向上,返回和關(guān)閉按鈕返回,向上與關(guān)閉按鈕在安卓用戶界面中起到了很重要的作用,然而經(jīng)常被誤解。從用戶體驗來說,這三個按鈕的作用是很簡單的。
向上鍵:當(dāng)用戶想返回上級菜單時,出現(xiàn)在軟件的工具欄中。它是根據(jù)時間順序進行導(dǎo)航的層次結(jié)構(gòu)。當(dāng)用戶持續(xù)點按時,它將根據(jù)時間順序持續(xù)返回知道到達(dá)父屏幕。由于父屏幕無法再往上,所有它不應(yīng)該出現(xiàn)在父屏幕。
返回鍵:始終存在于系統(tǒng)導(dǎo)航欄中。即使以前的時間順序屏幕在另一個應(yīng)用程序中,它將按時間順序向后導(dǎo)航,而不考慮應(yīng)用程序?qū)哟谓Y(jié)構(gòu)。它還會關(guān)閉臨時元素,如對話框,底部工作表和覆蓋的內(nèi)容。
關(guān)閉鍵:通常用于關(guān)閉界面的瞬態(tài)層或放棄對全屏對話框的更改。在Google Calendar中的(如下所示),較大的屏幕上,將關(guān)閉鍵放在左上角可以使整個界面更加清晰。在收件箱(以下)中,從收件箱到郵件的轉(zhuǎn)換表明郵件是收件箱頂部的一層,因此用戶可以理解要關(guān)閉的是哪一層。 Gmail(以下)將郵件定位為一個獨立的級別,所以使用向上按鈕。
在本文的引言中,我們看到了成功使用各種顯式導(dǎo)航組件的應(yīng)用示例。這些許多示例成功地將導(dǎo)航模式組合以形成對用戶更有意義的結(jié)構(gòu)。
可能最明顯的案例是Google+,它基本融合了所有文中敘述過的導(dǎo)航模式——標(biāo)簽導(dǎo)航,抽屜導(dǎo)航,底部導(dǎo)航,上下文導(dǎo)航。
將其拆開來看,底部的導(dǎo)航是G +。它可以訪問四個頂級目的地。標(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),基本是用于拓展日歷。日歷本身由一個可拓展的工具欄所控制,并有不同的顏色進行分類。
8 總結(jié)導(dǎo)航這個話題本身就很復(fù)雜。希望此文章可以給想了解 Android 導(dǎo)航的人提供一個良好的基礎(chǔ)。
來自:http://www.uml.org.cn/mobiledev/201707213.asp
相關(guān)文章:
1. java實現(xiàn)圖形化界面計算器2. IIS Express 取代 ASP.NET Development Server的配置方法3. javascript設(shè)計模式 ? 建造者模式原理與應(yīng)用實例分析4. Python使用oslo.vmware管理ESXI虛擬機的示例參考5. IntelliJ Idea2017如何修改緩存文件的路徑6. IDEA的Mybatis Generator駝峰配置問題7. 解決idea中yml文件不識別的問題8. IntelliJ IDEA設(shè)置條件斷點的方法步驟9. 一篇文章帶你了解JavaScript-對象10. Spring-Richclient 0.1.0 發(fā)布
