W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
編寫:XizhiXu - 原文:http://developer.android.com/training/design-navigation/ancestral-temporal.html
既然現(xiàn)在我們能進(jìn)入應(yīng)用界面某個(gè)層級(jí),我需要提供一個(gè)方法來(lái)在層級(jí)里向上導(dǎo)航到父親或祖先界面中。此外,我們應(yīng)該保證通過(guò) Back 按鈕來(lái)回退歷史導(dǎo)航記錄。
回退/向上導(dǎo)航設(shè)計(jì)
設(shè)計(jì)指南請(qǐng)閱讀 Android 設(shè)計(jì)文檔的Navigation模式指導(dǎo)
歷史導(dǎo)航,或者說(shuō)在歷史的界面間導(dǎo)航,在 Android 系統(tǒng)中由來(lái)已久。不論其他狀態(tài)如何,所有 Android 用戶都期望 Back 按鈕能帶他們回到之前的界面。歷史界面集全都以用戶的 Launcher 應(yīng)用為基礎(chǔ)(電話的 “Home” 鍵)。也就是說(shuō),按下 Back 鍵足夠多次數(shù)后你應(yīng)該回到 Launcher,之后 Back 鍵不做任何事情。
Figure 1. 從 Contacts(聯(lián)系人)app中進(jìn)入電子郵件 app 然后按 Back 鍵的行為
應(yīng)用自身通常不必考慮去管理 Back 按鈕。系統(tǒng)自己自動(dòng)處理 task 和 back H1H2H3H4 stack(回退棧),或者叫歷史界面列表。 Back 按鈕默認(rèn)反向訪問(wèn)界面列表,然后當(dāng)按鈕被按下時(shí)從列表中移除當(dāng)前界面。
但是總是有一些你可能需要重寫 Back 行為的例子。比如,你屏幕包含一個(gè)嵌入的網(wǎng)頁(yè)瀏覽器,在這個(gè)瀏覽器中你的用戶可和頁(yè)面元件進(jìn)行交互來(lái)在網(wǎng)頁(yè)間導(dǎo)航。你可能希望當(dāng)用戶按下設(shè)備的 Back 鍵時(shí)觸發(fā)嵌入瀏覽器的默認(rèn) back 操作。當(dāng)?shù)竭_(dá)了瀏覽器內(nèi)部歷史的起始點(diǎn),你就應(yīng)該遵從系統(tǒng) Back 按鈕的默認(rèn)行為了。
Android 3.0 之前,最常見的向上導(dǎo)航的形式以 Home 表示。大體上是以在設(shè)備 Menu 按鈕里提供一個(gè) Home 的可選項(xiàng)這樣的方法來(lái)實(shí)現(xiàn),或者 Home 按鈕出現(xiàn)在屏幕的左上角作為 Action Barbar(詳見Android 設(shè)計(jì)的模式章節(jié))的一個(gè)組件。當(dāng)選中 Home 后,用戶被帶到界面層級(jí)的頂層,通常被叫做應(yīng)用的主界面。
提供對(duì)程序主界面的直接訪問(wèn)能帶給用戶一種舒適感和安全感。無(wú)論位于應(yīng)用程序何處,如果你在 App 中迷路了,你可以點(diǎn)選 Home 然后回到那熟悉的主界面。
Android 3.0 引入了 Up 記號(hào),它被展示在了 Action Bar 上代替了上述的 Home 按鈕。點(diǎn)擊 Up,用戶將被帶入到結(jié)構(gòu)中的父界面。這個(gè)導(dǎo)航操作通常就是進(jìn)入前一個(gè)界面(就像之前 Back 按鈕討論中描述的一樣),但是并不是永遠(yuǎn)都這樣。因此,開發(fā)者必須保證 Up 對(duì)于每個(gè)界面都會(huì)導(dǎo)航到某個(gè)既定的父親界面。
Figure 2. 從聯(lián)系人 App 中進(jìn)入電子郵件 App 然后按 Up 導(dǎo)航的行為
某些情況下,Up 適合執(zhí)行某個(gè)行為而非導(dǎo)航到一個(gè)父親節(jié)點(diǎn)。以 Android 3.0 平板上的 Gmail 應(yīng)用為例。當(dāng)查看一封郵件的對(duì)話時(shí)把設(shè)備平放,對(duì)話列表和對(duì)話詳情將并排顯示。這是一種之前課程中的父、子界面組合。然而,當(dāng)豎屏查看郵件對(duì)話時(shí),只有對(duì)話詳情被顯示。Up 按鈕被用來(lái)使父視窗滑入屏幕顯示。當(dāng)左側(cè)視窗可見時(shí)再按一次 Up 按鈕,單個(gè)對(duì)話便回到全屏的對(duì)話列表中。
實(shí)現(xiàn)提醒: 實(shí)現(xiàn) Home 或 Up 導(dǎo)航的最佳做法就是保證清除back stack中的子界面。對(duì)于 Home,Home 界面是唯一留在back stack中的界面。對(duì)于 Up 導(dǎo)航,當(dāng)前界面也應(yīng)該從back stack中移除,除非 Back 在不同界面層級(jí)間導(dǎo)航。你可以將 FLAG_ACTIVITY_CLEAR_TOP和FLAG_ACTIVITY_NEW_TASK這兩個(gè) Intent 標(biāo)記一起使用來(lái)實(shí)現(xiàn)它。
最后一節(jié)課中,我們應(yīng)用現(xiàn)在為止所有課程中討論的概念來(lái)為我們新聞應(yīng)用例子創(chuàng)建交互設(shè)計(jì) Wireframe(線框圖)。
下節(jié)課:綜合:設(shè)計(jì)我們的樣例 App
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: