kan*_*ros 9 android fragment drawer
我正在尝试使用新的导航抽屉.我按照指南进行操作,并设法使用章节名称标题更改所选项目等等.现在我被卡住了,因为我不知道如何归档我接下来要做的事情.
当我在抽屉里点击一个项目- 家,例如-I希望它把我带到一个屏幕,我有我的具体画面的特定布局创建的所有东西.这是所有静态的东西,如TextViews图像,所以我不必对它们做任何事情.
我应该activity为ListView抽屉上的每个项目创建一个和一个布局,并且(不知道如何)开始活动onItemSelected()?或者我可以做一些事情,比如每次点击一个项目ListView并说出类似的东西时,动态创建一个片段
if(homeClicked){ //use home.xml as layout }
if(contactClicked){ //use contact.xml as layout }
Run Code Online (Sandbox Code Playgroud)
编辑
作为一个测试,我把onItemClick()一个方法传入了点击的数组位置.作为测试,我刚刚使用如下:
if(position==2) { // this is "contact" in the list layout
setContentView(R.layout.contacts);
}
Run Code Online (Sandbox Code Playgroud)
它确实有效,但显然我失去了抽屉,因为联系人布局的东西没有嵌套在DrawerLayout.是否有更优雅的方式来实现我的目标,而不是使用switchon位置和使用setContentView(),修改任何布局嵌套在DrawerLayout?(我甚至不知道它是否可能 - 可能不是,因为有相同的ID)
@Stefan对此进行了编辑,因为评论回复中没有足够的空间
谢谢Stefan,谷歌的例子让我更加困惑.我敢肯定,有一些关于片段的偷偷摸摸的东西,我可能已经阅读了10k次,但我的大脑拒绝同化.据我了解,在谷歌的例子,当你在抽屉里单击一个项目,它创建一个新片段,使该片段取代有除了抽屉里的唯一ListView的MainActivity的XML布局,这是一个FrameLayout是通吃屏幕的空间.然后所有片段都会显示一个行星,ImageView因此代码会根据ListView项目点击的数组位置对片段进行更改.
Oke,这里有许多初学者问题,还有一个非常新的和尚未定义的问题.
首先,你只需要做一个新的活动;
this.startActivity(new Intent(this, ActivityClassName.class));
Run Code Online (Sandbox Code Playgroud)
从任何Activity(或片段,有点改为'this'='this.getActivity()')
无论您是使用活动还是片段,您都必须创建一个类和一个所属的xml视图.你可以建立一些通用的东西,但大多数时候你不想这样做.
关于如果你应该启动一个新的活动,或者在点击抽屉后切换片段的问题,我会说这仍然很难说.
一般来说,开始一个新的活动是最容易和最"应该"的.因为活动应该等于可见的屏幕,可能有多个部分(可能是片段).
然而,在实践中,您会看到越来越多的Google应用程序(Google音乐,Play商店,新版Gmail ......)似乎放弃了这个想法并使用1个仅会不断切换片段的活动.
从技术上讲,这种将Activity放在应用程序中的角色,这会带来额外的困难.然而,在视觉上,过渡更平滑,因为,例如,动作栏保持不变,就像谷歌更喜欢它的"锚".
然而,似乎他们正在他们的教程中切换片段而不是启动活动,所以也许你应该尝试这种方式并处于"新的做事方式"的最前沿:)
http://developer.android.com/training/implementing-navigation/nav-drawer.html
| 归档时间: |
|
| 查看次数: |
9129 次 |
| 最近记录: |