W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
編寫:Lin-H - 原文:http://developer.android.com/training/implementing-navigation/descendant.html
Descendant Navigation是用來向下導(dǎo)航至應(yīng)用的信息層次。在Designing Effective Navigation和Android Design: Application Structure中說明。
Descendant navigation通常使用Intent和startActivity()實(shí)現(xiàn),或使用FragmentTransaction對象添加fragment到一個(gè)activity中。這節(jié)課程涵蓋了在實(shí)現(xiàn)Descendant navigation時(shí)遇到的其他有趣的情況。
在master/detail導(dǎo)航流程(navigation flow)中,master screen(主屏幕)包含一個(gè)集合中item的列表,detail screen(詳細(xì)屏幕)顯示集合中特定item的詳細(xì)信息。實(shí)現(xiàn)從master screen到detail screen的導(dǎo)航是Descendant Navigation的一種形式。
手機(jī)觸摸屏非常適合一次顯示一種屏幕(master screen或detail screen);這一想法在Planning for Multiple Touchscreen Sizes中進(jìn)一步說明。在這種情況下,一般使用Intent啟動(dòng)detail screen來實(shí)現(xiàn)activityDescendant navigation。另一方面,平板的顯示,特別是用橫屏來瀏覽時(shí),最適合一次顯示多個(gè)內(nèi)容窗格,master內(nèi)容在左邊,detail在右邊。在這里一般就使用FragmentTransaction實(shí)現(xiàn)descendant navigation。FragmentTransaction用來添加、刪除或用新內(nèi)容替換detail窗格(pane)。
實(shí)現(xiàn)這一模式的基礎(chǔ)內(nèi)容在Designing for Multiple Screens的Implementing Adaptive UI Flows課程中說明。課程中說明了如何在手機(jī)上使用兩個(gè)activity,在平板上使用一個(gè)activity來實(shí)現(xiàn)master/detail flow。
有很多情況,是從別的應(yīng)用下降(descend)至你的應(yīng)用信息層次(application's information hierarchy)再到activity。例如,當(dāng)正在瀏覽手機(jī)通訊錄中聯(lián)系信息的details screen,子屏幕詳細(xì)顯示由社交網(wǎng)絡(luò)聯(lián)系提供的最近文章,子屏幕可就可以屬于一個(gè)社交網(wǎng)絡(luò)應(yīng)用。
當(dāng)啟動(dòng)另一個(gè)應(yīng)用的activity來允許用戶說話,發(fā)郵件或選擇一個(gè)照片附件,如果用戶是從啟動(dòng)器(設(shè)備的home屏幕)重啟你的應(yīng)用,你一般不會希望用戶返回到別的activity。如果點(diǎn)擊你的應(yīng)用圖標(biāo)又回到“發(fā)郵件”的屏幕,這會使用戶感到很迷惑。
為防止這種情況的發(fā)生,只需要添加FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET標(biāo)記到用來啟動(dòng)外部activity的intent中,就像:
Intent externalActivityIntent = new Intent(Intent.ACTION_PICK);
externalActivityIntent.setType("image/*");
externalActivityIntent.addFlags(
Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
startActivity(externalActivityIntent);
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: