【Interface&navigation】實現後代導航(66)

後代導航在應用程序的信息層次結構中向下導航。這在設計有效導航中有所描述,也包含在Android設計:應用程序結構中。

後代導航通常使用Intent對象實現startActivity(),或者通過使用FragmentTransaction對象向活動添加片段來實現。本課程介紹了實現後代導航時出現的其他有趣案例。

導航架構組件(目前處於alpha狀態)是另一種處理應用程序導航的方法。當用戶觸發相關操作(即單擊按鈕)時,API處理顯示子活動或片段。要了解更多信息,請參閱 導航架構組件。

在手機和平​​板電腦上實現主/細節流程


在主/從導航流程中,主屏幕包括一個集合中的項目的列表,和一個細節屏幕顯示有關該集合中的特定項目的詳細信息。實現從主屏幕到詳細屏幕的導航是後代導航的一種形式。

手機觸摸屏最適合一次顯示一個屏幕(主屏幕或細節屏幕); 在規劃多個觸摸屏尺寸時進一步討論了這個問題。在這種情況下,後代導航通常使用Intent啓動表示詳細信息屏幕的活動來實現。另一方面,平板電腦顯示器,尤其是在橫向觀看時,最適合一次顯示多個內容窗格:左側是主設備,右側是詳細信息。這裏,後代導航通常使用FragmentTransaction添加,刪除或用新內容替換詳細信息窗格來實現。

實現此模式的基礎知識在“ 設計多個屏幕”類的“ 實現自適應UI流程”課程中進行了介紹。該課程描述瞭如何使用手機上的兩個活動和平板電腦上的單個活動來實現主/詳細流程。

有關在多窗格環境中應用此模式的信息,請參閱Android設計:多窗格佈局。

導航到外部活動


在某些情況下,降級到應用程序的信息層次結構會導致其他應用程序的活動。例如,當查看電話地址簿中的條目的聯繫人詳細信息屏幕時,社交網絡上的聯繫人詳細描述最近帖子的子屏幕可以屬於社交網絡應用程序。

當啓動另一個應用程序的活動以允許用戶說出,撰寫電子郵件或選擇照片附件時,如果用戶從啓動器(設備主屏幕)重新啓動應用程序,通常不希望用戶返回此活動。如果觸摸您的應用程序圖標將用戶帶到“撰寫電子郵件”屏幕,那將會令人困惑。

要防止這種情況發生,只需將FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET標誌添加到用於啓動外部活動的意圖,如下所示:

Intent externalActivityIntent = new Intent(Intent.ACTION_PICK);
externalActivityIntent.setType("image/*");
externalActivityIntent.addFlags(
        Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
startActivity(externalActivityIntent);

聯繫我

QQ:94297366
微信打賞:https://pan.baidu.com/s/1dSBXk3eFZu3mAMkw3xu9KQ

公衆號推薦:

【Interface&navigation】實現後代導航(66)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章