Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/224.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用NavigationDrawer打开活动而不是片段是正确的吗?_Android_Navigation Drawer - Fatal编程技术网

Android 使用NavigationDrawer打开活动而不是片段是正确的吗?

Android 使用NavigationDrawer打开活动而不是片段是正确的吗?,android,navigation-drawer,Android,Navigation Drawer,我的应用程序基本上有一个主要活动。其中有三个选项卡,每个选项卡都有一个片段。类似whatsapp的布局 为了向应用程序添加更多功能,我认为NavigationDrawer是一个不错的选择。但由于我的应用程序运行的主活动带有子片段,我想知道当用户单击任何项NavigationDrawer时,加载活动而不是片段是否是一种不好的做法 还是最好的meneira会把我的主要活动变成碎片?这会给我一份好工作 我想建议=)您可以使用导航抽屉打开新活动。基本上,只需使每个活动具有相同外观的抽屉,用户体验将与替换

我的应用程序基本上有一个主要活动。其中有三个选项卡,每个选项卡都有一个片段。类似whatsapp的布局

为了向应用程序添加更多功能,我认为NavigationDrawer是一个不错的选择。但由于我的应用程序运行的主活动带有子片段,我想知道当用户单击任何项NavigationDrawer时,加载活动而不是片段是否是一种不好的做法

还是最好的meneira会把我的主要活动变成碎片?这会给我一份好工作


我想建议=)

您可以使用
导航抽屉
打开新活动。基本上,只需使每个活动具有相同外观的抽屉,用户体验将与替换
片段时相同

然而,我不鼓励这样做。我一直在为
NavigationDrawer
使用混合了
片段
活动
的应用程序,结果是有问题的,尤其是在回溯和保存状态方面。它确实有效,但需要黑客修复和一些不合逻辑的代码


NavigationDrawer
的最佳实践是有一个“容器”活动,该活动的作用仅限于在其所包含的
FrameLayout
中交换
片段。其余的逻辑将在片段中。这样,应用程序很容易扩展,后台由平台处理。

我更喜欢
片段
,但打开新的
活动
没有问题。Instagram也有类似的功能。它有选项卡(我知道您想使用
NavigationDrawer
,但这只是一个示例),这些选项卡上的一个选项卡打开一个新的
活动
,用X按钮关闭
活动

Instagram的主要活动:

带有关闭按钮的新活动:

Android应用程序的功能与此完全相同。它从导航抽屉中打开活动。这类活动扩大了范围。活动的开始和退出动画是自定义的,以使过渡看起来更平滑


我建议使用这种方法,因为管理活动的后台堆栈要比管理片段容易得多。

也可以愉快地开始活动。确保在打开的活动上按下后退按钮,以便用户清楚地知道哪个屏幕是主要屏幕

但请稍候。

如果您担心是否遵循标准(行业),请阅读以下内容: 如果您的所有活动对用户(包括选项卡式活动)具有同等的重要性,则建议您使用片段,另一方面,如果您不希望人们被导航抽屉图标或选项卡分心,则最好只在顶部打开一个“后退”按钮即可打开一个新活动


我希望它能让您了解如何继续..

因此,如果我选择只使用片段,在我的例子中,应用程序基本上有一个主要活动,其中有三个选项卡,每个选项卡都有一个片段。最好的方法是将表格设置为my main_activity.xml。使ViewPager成为主要的_activity.xml,将它们放在一个片段中,并仅在“主”应用程序启动时添加它们(TabLayout和ViewPager)?这就是“正确”的方式?是的,您应该将当前的寻呼机逻辑放在另一个片段中,当选择“主页”选项时,在某种程度上创建一个Activity=>Fragment(Pager)=>Fragments(content)层次结构。非常感谢。他们的回答让事情变得更清楚了,这是目前所必需的