我正在尝试使用新的Navigation Drawer。我遵循了该指南,并设法让它在所选项目上更改部分名称标题等。现在我被困住了,因为我不知道如何归档我接下来想做的事情。
当我点击抽屉中的一个项目时 -例如- 我希望它把我带到一个屏幕,在那里我拥有我在特定屏幕的特定布局中创建的所有内容。这都是静态的东西,比如TextViews
和图像,所以我不需要对它们做任何事情。
我应该为抽屉activity
上的每个项目创建一个布局ListView
并(不知道如何)开始活动onItemSelected()
吗?或者我可以做一些事情,比如每次我点击一个项目时动态创建一个片段,ListView
然后说类似的话
if(homeClicked){ //use home.xml as layout }
if(contactClicked){ //use contact.xml as layout }
编辑
作为测试,我放入了onItemClick()
一个在单击的数组位置中传递的方法。作为一个测试,我刚刚使用过:
if(position==2) { // this is "contact" in the list layout
setContentView(R.layout.contacts);
}
它确实有效,但显然我丢失了抽屉,因为联系人布局的东西没有嵌套在DrawerLayout
. 有没有更优雅的方式来实现我的目标,而不是使用switch
on 位置和使用setContentView()
,修改任何要嵌套在 a 中的布局DrawerLayout
?(我什至不知道这是否可能 - 可能不是,因为有相同的 ID)
@Stefan编辑了这个,因为评论回复中没有足够的空间
谢谢 Stefan,Google 的例子让我更加困惑。我敢肯定,我可能已经阅读了 10k 次但我的大脑拒绝同化的片段有一点偷偷摸摸的东西。据我了解,在 Google 的示例中,当您单击抽屉中的一个项目时,它确实会创建一个新片段,并使该片段替换除xml 布局ListView
中的抽屉之外唯一的东西,这是一个包含所有屏幕的空间。然后所有片段所做的就是显示一个行星,因此代码告诉片段根据项目单击的数组位置更改该图像。MainActivity
FrameLayout
ImageView
ListView