【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)

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