我想用新的导航抽屉。我遵循了指导原则,并设法让它处理部分名称、选定项目的标题更改等问题。现在我陷入了困境,因为我不知道如何归档我下一步要做的事情。
例如,当我点击抽屉里的一个项目时,我想让它把我带到一个屏幕上,在那里我有我为特定屏幕在特定布局中创建的所有东西。这都是静态的东西,比如TextView
和图像,所以我不需要对它们做任何事情。
我是否应该为抽屉的列表视图
上的每个项目创建一个活动
和一个布局,并(不知如何)在onItemSelected()中启动活动
?或者,我可以在每次单击列表视图中的某个项目时动态创建一个片段,然后说
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
中。有没有更优雅的方法来实现我的目标,而不是使用开关
打开位置,使用setContentView()
,修改要嵌套在抽屉布局中的任何布局
?(我甚至不知道这是否可能——可能不会,因为有相同的ID)
@斯特凡编辑了这篇评论,因为评论回复中没有足够的空间
谢谢斯特凡,谷歌的例子让我更加困惑。我相信我可能已经读了10k遍的片段有一点偷偷摸摸的地方,但是我的大脑拒绝吸收。据我所知,在谷歌的例子中,当你点击抽屉中的一个项目时,它确实会创建一个新的片段,并使这个片段取代抽屉中除了抽屉的
ListView
之外的唯一东西,在Main Active
的xml布局中,它是一个占用屏幕所有空间的FrameLayout
。然后所有片段所做的就是显示一个行星ImageView
,因此代码对片段说,根据项目单击的ListView
数组位置更改该图像。
这真的很困惑,我敢肯定Android工程师错过了一些东西!
例如,在iOS上,您可以轻松地在windows上拥有多个“UIViewController”,并为所有应用程序提供相同的菜单(或UIABViewController)。这是正常的行为,没有231个关于stackoverflow的问题^^
但在Android系统上,我发现没有人有一个干净的解决方案可以在活动中使用NavDrawer或Tab-(
我将选择单个活动和几个片段的方法,让我们看看!
好了,这里有很多入门问题,还有一个还很新,还没有定义。
首先,你只需做一件事就可以开始一项新的活动;
this.startActivity(new Intent(this, ActivityClassName.class));
从任何活动(或片段,有点改变为'this'='this.get活动()')
无论使用活动还是片段,都必须创建一个类和一个属于它的xml视图。你可以建立一些通用的东西,但大多数时候你不想这样做。
关于你是否应该启动一个新的活动,或者在点击抽屉后切换片段的问题,我认为这仍然很难说。
一般来说,刚开始一项新的活动是最容易的,也是最“应该”的。作为一项活动,它应该相当于一个可能包含多个部分(可能是片段)的可见屏幕。
然而,在实践中,你会看到越来越多的谷歌应用(谷歌音乐、Play store、新Gmail等)他们似乎放弃了这个想法,使用了一个只会不断切换片段的活动。
从技术上讲,这种类型将活动置于应用程序角色中,这可能会带来额外的困难。然而,在视觉上,转换要平滑得多,因为每个例子中,操作栏保持不变,就像谷歌喜欢的“锚”一样。
然而,他们似乎在他们的教程中切换片段,而不是开始活动,所以也许你应该尝试这种方式,并处于“新的做事方式”的流血边缘:)
http://developer.android.com/training/implementing-navigation/nav-drawer.html
我有一个主活动启动导航抽屉。 也有一些片段。 我需要从片段内部更改导航抽屉列表的标题。 我尝试了这个内部片段: 但是到目前为止还没有运气。这是我的主要活动: 在主活动类中使用相同的方法有效,但在片段中无效。我不知道如何更新字符串并通知抽屉此更改!
问题内容: 我知道这些类型的问题已经在这里,但仍然找不到这个问题的答案: 我已经创建了一个应用程序,并使用了由该应用程序自动创建的导航抽屉(AndroidStudio) 这是我所拥有的: 还有更多: 我想使用导航抽屉中的按钮显示另一个片段。我想使用此代码,所以请不要向我发送任何制作自己的抽屉的指南或教程。 现在的问题是,我该怎么放 ,并在情况下,我想打开另一个片段?谢谢。 还有一个问题: 如何添加
当前方案
我有一个活动a,一个列表片段P和两个片段Q和R。 当应用程序启动时,会创建一个,加载P。根据用户点击的内容,它被Q或R取代。 现在,通过参考本教程,我实现了一个导航抽屉,向用户显示某些项目。然而,由于我在活动中实现了导航抽屉,它显示了所有片段。我希望它只对P可用。 (非常类似于谷歌Gmail应用程序。当用户在主屏幕上时,抽屉就出现了。当用户点击打开电子邮件时,抽屉就会切换到后退按钮) 我不知道如何
我已经从Android官方网站下载了示例项目http://developer.android.com/training/implementing-navigation/nav-drawer.html.我试图了解导航抽屉是如何工作的。所以,我有一个疑问,他们从左侧菜单中为每个项目调用一个片段。在我的项目中,我有一个大活动,我试图通过这个片段调用它: 公共类HomeFragment扩展了片段{ } 但