提交需求
賽事與廣告咨詢合作,請(qǐng)?zhí)顚懶枨蟊韱?,我們?huì)在第一時(shí)間與您聯(lián)系!
導(dǎo)航是用戶體驗(yàn)中至關(guān)重要的一環(huán),沒有什么比不一致或者錯(cuò)誤的導(dǎo)航更加困擾用戶的了。Android 3.0 對(duì)系統(tǒng)的全局導(dǎo)航行為做出了較大的改變。根據(jù)向上 (Up) 和返回 (Back) 的設(shè)計(jì)原則,仔細(xì)考慮你的應(yīng)用程序行為,使得你的應(yīng)用可以做出準(zhǔn)確一致的導(dǎo)航。
Android 2.3 以及更早版本的系統(tǒng)使用設(shè)備上的返回鍵在應(yīng)用內(nèi)導(dǎo)航。Android 3.0 引入了操作欄之后,第二種導(dǎo)航方式就出現(xiàn)了: 向上按鈕,它由應(yīng)用圖標(biāo)和向左的箭頭組成。
“向上”按鈕用來(lái)在應(yīng)用內(nèi),根據(jù)應(yīng)用的邏輯層級(jí)進(jìn)行導(dǎo)航。舉例來(lái)說,屏幕 A 顯示了一個(gè)條目列表,點(diǎn)擊其中一個(gè)條目到達(dá)屏幕 B (顯示該條目的詳細(xì)信息),那么屏幕 B 應(yīng)當(dāng)提供一個(gè)“向上”按鈕,讓用戶可以回到屏幕 A。
如果某個(gè)屏幕已經(jīng)是該應(yīng)用的頂層了 (例如,應(yīng)用的主頁(yè)),那不需要“向上”按鈕。
系統(tǒng)的“返回”鍵則用于按照切換歷史返回到之前的屏幕。這種導(dǎo)航基于當(dāng)前的狀態(tài),而不是基于應(yīng)用的邏輯層級(jí)。
如果之前的屏幕就是邏輯層次的上一層,那么“返回”和“向上”的行為是一樣的。不過和“向上”不同的是,“返回”可能回到“主屏幕”或者其他的應(yīng)用,“向上”回到的屏幕總是在你的應(yīng)用中。
除了屏幕之間的導(dǎo)航,“返回”鍵還支持一些其他導(dǎo)航行為:
有時(shí),某個(gè)屏幕在應(yīng)用的邏輯結(jié)構(gòu)中的位置并不固定,可以從多個(gè)的方進(jìn)入該屏幕,例如設(shè)置頁(yè)面就可以從應(yīng)用中的任何位置進(jìn)入。這種情況下,“向上”按鈕會(huì)回到之前的屏幕,行為和“返回”完全一致。
同一屏幕中的視圖切換不會(huì)影響“向上”和“返回”按鈕的行為,因?yàn)橐晥D的切換不會(huì)影響當(dāng)前屏幕在你應(yīng)用中的位置,也不會(huì)影響屏幕的導(dǎo)航歷史。
例如:
如果你的應(yīng)用可以從一個(gè)列表進(jìn)入其中某個(gè)條目的詳細(xì)信息頁(yè)面,那么應(yīng)當(dāng)考慮提供在相鄰條目的詳細(xì)信息頁(yè)面之間的直接導(dǎo)航。例如在 Gmail 應(yīng)用中,通過左右滑動(dòng)郵件對(duì)話視圖,可以在相同收件箱的上一條和下一條郵件對(duì)話之間導(dǎo)航。由于是在同一個(gè)屏幕中變換視圖,所以這樣的操作不會(huì)影響“向上”和“返回”的行為。
但是要注意到,瀏覽“相關(guān)”但不相鄰的詳細(xì)信息時(shí),“向上”和“返回”的行為會(huì)發(fā)生變化。例如,在 Play 商店中瀏覽同一開發(fā)者的其他應(yīng)用或者同一位歌手的不同專輯。這樣的操作會(huì)導(dǎo)致屏幕歷史發(fā)生變化,那么“返回”按鈕就會(huì)回到上一個(gè)瀏覽的條目,而不是條目列表?!跋蛏稀卑粹o則仍然會(huì)回到條目列表。
你還可以使“向上”的行為根據(jù)當(dāng)前的頁(yè)面內(nèi)容變化,使它更加聰明 (譯者: 更加復(fù)雜了-_-)。我們擴(kuò)展一下之前 Play 商店的例子,如果用戶從一本圖書的詳細(xì)信息頁(yè)面跳轉(zhuǎn)到某部電影。這時(shí)“向上”應(yīng)當(dāng)返回到電影列表而不是之前的圖書列表。
你可以通過主屏幕或者通知讓你的用戶直接進(jìn)入應(yīng)用的深層次屏幕。例如 Gmail 的收件箱小部件和新消息通知都可以跳過收件箱,直接進(jìn)入會(huì)話視圖。
這兩種情況下,都按照下面的指導(dǎo)處理“向上”:
對(duì)于“返回”按鈕,你應(yīng)當(dāng)在任務(wù)棧中插入一些屏幕,使導(dǎo)航行為更合理,可以通過“返回”一直回到應(yīng)用的主屏幕。這樣可以使用戶在退出應(yīng)用前可以返回到應(yīng)用的主屏幕。
例如,Gmail 的窗口小部件提供了一個(gè)按鈕可以直接進(jìn)入撰寫屏幕。“向上”和“返回”都會(huì)先讓用戶回到收件箱,“返回”還可以一直回到主屏幕。
當(dāng)你的應(yīng)用需要同時(shí)通知多條信息時(shí),可以通過單條通知將用戶帶入一個(gè)列表屏幕。這個(gè)屏幕列出所有的事件,并且可以讓用戶直接進(jìn)入應(yīng)用。這種通知叫做間接通知。
不同于標(biāo)準(zhǔn)的 (直接) 通知,在間接通知的列表屏幕按“返回”鍵將回到開啟通知之前的屏幕。一旦用戶觸摸通知進(jìn)入應(yīng)用后,“向上”和“返回”的行為應(yīng)當(dāng)和之前的指導(dǎo)一樣: 在應(yīng)用中導(dǎo)航,而不是跳回到之前的屏幕。
例如,用戶在 Gmail 應(yīng)用中收到了日歷應(yīng)用的間接通知。通過通知進(jìn)入列表屏幕后,觸摸“返回”將回到 Gmail 應(yīng)用。如果用戶觸摸了某條事件,從而進(jìn)入了日歷應(yīng)用的詳細(xì)信息屏幕,此時(shí)“向上”和“返回”都會(huì)回到日歷應(yīng)用的頂層視圖。
彈出通知跳過通知抽屜,直接將通知呈現(xiàn)在用戶面前。不要濫用這種通知,除非用戶必須立刻對(duì)信息做出響應(yīng)時(shí),才使用彈出通知。例如,Hangouts 應(yīng)用使用彈出通知告知用戶有來(lái)自朋友的視頻聊天邀請(qǐng),如果不做出響應(yīng)的話,邀請(qǐng)將會(huì)很快失效。
彈出通知的導(dǎo)航行為和間接通知比較接近?!胺祷亍笨梢躁P(guān)閉當(dāng)前的彈出邀請(qǐng)。如果用戶從彈出通知進(jìn)入了應(yīng)用,“向上”和“返回”都應(yīng)當(dāng)按照之前的指導(dǎo),在應(yīng)用中導(dǎo)航。
Android 系統(tǒng)一個(gè)基礎(chǔ)的優(yōu)勢(shì)就在于應(yīng)用之間有能力互相調(diào)用,用戶可以直接從一個(gè)應(yīng)用進(jìn)入另一個(gè)應(yīng)用。例如,一個(gè)應(yīng)用需要捕捉照片時(shí),將會(huì)進(jìn)入相機(jī)應(yīng)用,相機(jī)應(yīng)用再將拍攝的照片返回給該應(yīng)用。這樣既可以避免開發(fā)者的重復(fù)勞動(dòng),也能保證用戶體驗(yàn)的一致性。
為了理解應(yīng)用間的導(dǎo)航,必須了解一下 Android 的框架體系。
Android 系統(tǒng)中,activity 這個(gè)應(yīng)用組件定義了一個(gè)包含信息和用戶能夠執(zhí)行的所有相關(guān)操作的屏幕。你的應(yīng)用就是一些 activity 的集合,包括了你編寫的 activity 和從其他應(yīng)用中復(fù)用的 activity。
Task 用于表示用戶完成一個(gè)任務(wù)需要執(zhí)行的 activity 隊(duì)列。一個(gè) task 可以只使用來(lái)自同一個(gè)應(yīng)用的 activity,或者也可以使用來(lái)自不同應(yīng)用的 activity。
Intent 作為一種機(jī)制,表示一個(gè)應(yīng)用希望其他應(yīng)用幫助它完成一個(gè)操作。應(yīng)用中的 activity 可以向系統(tǒng)告知自己可以響應(yīng)哪些 intent。例如比較常見的 intent “分享”,用戶安裝的許多應(yīng)用可能都可以響應(yīng)這個(gè) intent 完成操作。
為了了解 activity, task 和 intent 如何一起工作,我們來(lái)觀察一個(gè)應(yīng)用如何通過其他應(yīng)用分享內(nèi)容。例如,從主屏幕啟動(dòng) Play 商店應(yīng)用后,將會(huì)開始一個(gè)新的 Task A (如下圖所示)。在 Play 商店中瀏覽并進(jìn)入了一本圖書的詳細(xì)信息屏幕后,用戶仍然處于同一個(gè) task 之中,只是通過 activity 擴(kuò)展了它。觸摸分享,將會(huì)彈出一個(gè)列表,顯示了其他應(yīng)用注冊(cè)的可以響應(yīng) Share intent 的 activity。
當(dāng)用戶選擇通過 Gmail 分享后,Gmail 的撰寫 activity 將會(huì)被加入 Task A,此時(shí)仍然沒有創(chuàng)建新的 task。如果 Gmail 此時(shí)在后臺(tái)已經(jīng)有 task 在運(yùn)行的話,將沒有任何影響。
在撰寫 activity 中,發(fā)送消息或者觸摸“返回”后,用戶將回到圖書詳細(xì)信息 activity 中。如果一直觸摸“返回”,將在 Play 商店中導(dǎo)航,直至返回主屏幕。
不過,如果在撰寫 activity 觸摸了“向上”,那么表示用戶想留在 Gmail 應(yīng)用中。此時(shí)將會(huì)顯示 Gmail 的會(huì)話列表,同時(shí)啟動(dòng)一個(gè)新的 Task B。新的 Task 的頂層總是主屏幕,所以在會(huì)話列表一直觸摸“返回”將會(huì)回到主屏幕,而不會(huì)回到 Play 商店。
Task A 將被保持在后臺(tái),用戶可能待會(huì)兒還會(huì)回到 Play 應(yīng)用商店。如果 Gmail 已經(jīng)有個(gè)在后臺(tái)運(yùn)行的 task 的話,那么會(huì)被 Task B 取代,以保持新的用戶操作狀態(tài)。
當(dāng)你的應(yīng)用注冊(cè)了響應(yīng)某些 intent,并且直接進(jìn)入應(yīng)用的深層次 activity,請(qǐng)參考上面的“從主屏幕或者通知進(jìn)入你的應(yīng)用”,處理“向上”導(dǎo)航。
密碼登錄
大牛,別默默的看了,快登錄幫我點(diǎn)評(píng)一下吧!:)
登錄 立即注冊(cè)