Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.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导航抽屉_Android_Navigation Drawer - Fatal编程技术网

深度导航中的Android导航抽屉

深度导航中的Android导航抽屉,android,navigation-drawer,Android,Navigation Drawer,我的应用程序正在根活动布局中使用新的导航抽屉。抽屉中的每个项目都是一个片段(正如项目示例所示)。但是,我有更深入的导航,指南上说, “如果您有特别深的分支,则单独上下导航到应用程序的顶层可能会变得重复和麻烦。由于导航抽屉可以从应用程序中的任何位置访问,因此导航到顶层的速度更快、效率更高。” 这意味着抽屉应该可以通过从屏幕左侧几乎在应用程序中的任何位置(参见播放音乐示例)进行滑动来访问,而不仅仅是在根活动中 既然我的深度导航包含了新的活动,而不仅仅是堆积了更多的片段,我怎么还能应用我的主导航抽屉来

我的应用程序正在根活动布局中使用新的导航抽屉。抽屉中的每个项目都是一个片段(正如项目示例所示)。但是,我有更深入的导航,指南上说, “如果您有特别深的分支,则单独上下导航到应用程序的顶层可能会变得重复和麻烦。由于导航抽屉可以从应用程序中的任何位置访问,因此导航到顶层的速度更快、效率更高。” 这意味着抽屉应该可以通过从屏幕左侧几乎在应用程序中的任何位置(参见播放音乐示例)进行滑动来访问,而不仅仅是在根活动中


既然我的深度导航包含了新的活动,而不仅仅是堆积了更多的片段,我怎么还能应用我的主导航抽屉来更快地导航整个应用程序中的顶级项目(片段)?

谷歌在解释这一点上肯定做得不好,因为我自己花了一段时间才找到它。正确的处理方法是使用在现有导航抽屉布局中添加/替换容器,特别是告诉Android将其视为导航事务的方法

我不得不从他们的文章中拼凑出来,这篇文章解释了如何处理碎片。一个很酷的小道消息是,你不必“添加”彼此之上的片段,你只需替换活动片段即可。当用户点击“Back”时,Android将弹出事务并将其恢复到以前的状态

此外,您可能还希望调用事务,使其像活动一样具有动画效果。以下是我在项目中使用的示例:

getFragmentManager().beginTransaction()
                    .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
                    .replace(R.id.container, newFragment);
                    .addToBackStack(null);
                    .commit();
从这里点击“Back”将执行相反的动画,并返回到事务发生前的状态


我知道我迟到了,但希望它能帮助别人

在所有子活动中也包括导航抽屉。不过,我需要复制大量代码和布局才能做到这一点。这没关系;我只是想确定这是最好的方法。