我最近一直在研究Android使用的导航系统,意在移植使用UITabBarController
的iOS应用程序,其中包含多个UINavigationController
。要替换标签栏(Android上不可用),我决定使用内置的DrawerLayout
。Android上的导航层次结构?
从我读过的内容来看,Android中的导航通常是通过创建一个Intent
来完成的,它提供额外功能,然后替换当前活动。这会自动确保后退按钮可用,并且可以选择左上角的后退按钮(如果启用)。
但是,我不知道如何实现这种与the navigation drawer导航的方式。本教程告诉我创建一个DrawerLayout
,其中包含FrameLayout
和ListLayout
,其中FrameLayout
将包含实际应用程序,而ListLayout
将包含导航。这意味着当我使用上述方法“导航”时,它将取代活动并因此取出抽屉。
什么是最好的方式来实现我想要的(带有后退按钮支持的基本导航,同时保持全局抽屉导航菜单)?我可以提出的可能选项始终保持相同的活动并动态替换FrameLayout
,但这意味着需要渲染大量样板并可能需要黑客来支持后退按钮(并且不会有动画:()。另一种选择是在每个活动上渲染抽屉(通过子类化或其他),但这意味着如果用户导航很多,后退按钮“堆栈”将变得相当大。
我试过基本上,我想要类似于UITabBarController
中的UINavigationController
。
我建议使用android工作室模板的应用程序与导航抽屉,您可以使用片段作为主要组件来显示内容。后退按钮的行为是可定制的,您不必将每个碎片事务提交给后台堆栈。 – dominik4142 2015-04-04 17:55:24