使用导航抽屉更改片段(?)布局或活动

我正在尝试使用新的导航抽屉 。 我遵循指导原则,并设法使用选定项目上的章节名称标题更改等。 现在我被卡住了,因为我不知道如何将接下来要做的事情归档。

当我点击抽屉中的一个项目时 – 比如说 – 我想让它进入一个屏幕,在这个屏幕上我已经为特定的屏幕在特定的布局中创build了所有的东西。 这是所有静态的东西,如TextViews和图像,所以我不必对他们做任何事情。

我应该为抽屉的ListView上的每个项目创build一个activity和布局,并且(现在还不知道如何)在onItemSelected()启动活动? 或者,我可以做一些事情,比如每次点击ListView一个项目时都会创build一个片段,并且像这样说

 if(homeClicked){ //use home.xml as layout } if(contactClicked){ //use contact.xml as layout } 

编辑

作为一个testing,我把onItemClick()方法传递到数组中的位置点击。 作为一个我刚刚使用的testing:

 if(position==2) { // this is "contact" in the list layout setContentView(R.layout.contacts); } 

它可以工作,但显然我失去了抽屉,因为联系人布局的东西没有嵌套在DrawerLayout 。 有没有一个更优雅的方式来实现我的目标,而不是使用switch位置和使用setContentView() ,修改任何布局嵌套在DrawerLayout ? (我甚至不知道是否有可能 – 可能不会,因为有相同的ID)

@Stefan编辑这个,因为评论回复没有足够的空间

感谢Stefan,Google的例子让我更加困惑。 我肯定有一个关于片段的偷偷摸摸的东西,我可能读过10k次,但是我的大脑拒绝同化。 据我所知,在谷歌的例子中,当你点击抽屉中的一个项目时,它会创build一个新的片段,并使得这个片段replaceMainActivity的xml布局中的抽屉的ListView ,这是一个FrameLayout占用屏幕的所有空间。 然后,所有的片段都会显示一个行星ImageView这样代码就会根据项目点击的ListView数组位置对片段进行更改。

Solutions Collecting From Web of "使用导航抽屉更改片段(?)布局或活动"

奥克,这里有很多初学者的问题,还有一个非常新的和未定义的问题。

首先,你简单地做一个新的活动,

 this.startActivity(new Intent(this, ActivityClassName.class)); 

从任何活动(或片段,有点改为'this'='this.getActivity()')

无论您使用的是活动还是片段,您都必须创build一个类和一个属于的xml视图。 你可以build立一些通用的,但大多数时候你不想这样做。

关于这个问题,如果你应该启动一个新的活动,或切换碎片后点击抽屉,我想说这还是很难说。

一般来说,这是最简单,最“开始”一个新的活动“应该”。 作为一个活动应该等于一个可能的屏幕可能有多个部分(可能是碎片)。

然而在实践中,你会看到越来越多的Google应用程序(Google Music,Play商店,新的Gmail ..)似乎放弃了这个想法,并且使用了只能不断切换Fragments的Activity。

从技术上讲,这种活动在应用程序angular色中可能带来额外的困难。 然而,在视觉上,过渡更加顺畅,例如,操作栏保持不变,就像Google更喜欢它的“主播”一样。

然而,似乎他们在教程中转换片段而不是开始活动,所以也许你应该这样做,并且处在“新的做事方式”的最前沿:)

http://developer.android.com/training/implementing-navigation/nav-drawer.html

这真的很困惑,我很确定Android工程师在这里错过了一些东西!

例如,在iOS上,您可以在窗口中轻松使用多个“UIViewController”,并为您的所有应用程序提供相同的菜单(或UITabViewController)。 这是一个正常的行为瓦特/ 231问题stackoverflow ^^

但在Android上,我看到没有人有一个干净的解决scheme,使用NavDrawer或带有激活选项卡;-(

我要select单个活动和几个片段的方法,让我们来看看!