【发布时间】:2015-04-04 17:42:43
【问题描述】:
我最近一直在研究 Android 使用的导航系统,目的是移植我的 iOS 应用程序,该应用程序使用包含多个 UINavigationControllers 的 UITabBarController。为了替换标签栏(在 Android 上不可用),我决定使用内置的 DrawerLayout。
根据我的阅读,Android 中的导航通常通过创建Intent 来完成,为其提供附加功能,然后仅替换当前活动。这会自动确保后退按钮有效,如果启用,左上角的后退按钮可选。
但是,我不确定如何使用the navigation drawer 实现这种导航方式。本教程告诉我创建一个包含FrameLayout 和ListLayout 的DrawerLayout,其中FrameLayout 将包含实际应用程序,ListLayout 将包含导航。这意味着当我使用上述方法进行“导航”时,它会替换活动,从而移除抽屉。
实现我想要的最佳方式是什么(支持后退按钮的基本导航,同时保持全局抽屉式导航菜单)?我能想到的可能选项是始终保持相同的活动并动态替换FrameLayout,但这意味着要渲染大量样板文件,并且可能需要破解来支持后退按钮(并且不会有动画:( ). 另一种选择是只在每个活动上呈现抽屉(通过子类化或其他方式),但这意味着如果用户导航很多,后退按钮“堆栈”会变得非常大。
我试图尽可能详细地解释我需要什么,但是很难解释这个概念。基本上,我想要类似于UITabBarController 中的UINavigationControllers 的东西。
【问题讨论】:
-
我建议使用带有导航抽屉的应用程序的android studio模板,您可以使用片段作为主要组件来显示内容。后退按钮行为是可定制的,您不必将每个片段事务提交到 backstack。
标签: android ios navigation