2013-05-22 323 views
7

我试图探索由Google标准化的新导航抽屉。最后我们也有官方的代码。Android导航抽屉

我想了解在我的应用程序中实现相同的最佳方式。

我的应用程序的结构如下

-MainActivity 
----Featured Tab 
----Favorites Tab 

在任一选项卡的任何元素的点击它会带我下面

ContentActivity 
----Info Tab 
----Map Tab 

现在我很困惑是上述所有有放置到导航抽屉的新视图中。

而作为导航抽屉式结构是这样的

与含有navdraw视图和实习生包含内容的布局和抽屉的布置的配置的活动。在点击抽屉中的选项时,我应该将内容布局全部替换,还是应该打开新的活动?

回答

3

正如在“Handle Navigation Click Events”下的Creating a Navigation Drawer文档中详细介绍的那样,它使用Fragments。当用户选择一个选项时,您只需更换内容碎片,从而允许导航抽屉保持原位。如果你按照文档,那么你应该没问题。

如果你还没有遇到碎片,那么值得在the documentation for Fragments上看到它们。它们就像活动一样,有一些差异可以让Android一次显示多个片段。

+0

比方说,我在导航抽屉的第二个选项中有多个选项卡。我是否需要动态构建选项卡来替换屏幕上的所有内容? –

+1

您的第二项活动是否包含选项卡并不重要 - 每个屏幕都将是一个单独的片段,您可以使用类似于视图的XML进行配置。它可能有助于阅读碎片一般,因为导航抽屉只是一个特殊情况下使用碎片。 – Nick

+0

谢谢,我会阅读它。看起来像我们可以在片段内部有标签 –

1

答案是你可以做,也可以用新的片段切换内容,或者启动一个新的活动。

你可以在selectItem(position)方法中自由地做任何你想做的事情。

官方文档在他们的例子中使用片段,但它不是必需的。你可以在这个方法中做任何你想做的事情(只需从Toast或Logcat消息开始,看看单击元素时会发生什么)。

+3

我觉得有时Google的文档过于复杂 - 我认为在这个例子中增加Fragments使得它更难以遵循。我也认为使用外部化数组作为列表项过于复杂(对于这个例子)。 – Booger

+1

如果我启动了新的活动,并且我希望在这些活动中再次使用导航抽屉,那么如何实现此操作而不必反复重写导航抽屉显示代码?我尝试了一个BaseActivity,然后从导航抽屉中调用的其他活动是它的子类。问题是,如果我对新活动有不同的布局,则我无法访问导航抽屉布局。我是否需要将此导航抽屉布局包含在活动布局 ..? –

+0

开始一个关于此的新问题。这是一个新问题,在评论中无法解决。 – Booger