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

2024-03-22

我正在尝试使用新的抽屉式导航。我遵循了指南,并设法让它与所选项目上的部分名称标题更改等一起使用。现在我陷入了困境,因为我不知道如何归档我下一步想做的事情。

当我单击抽屉中的某个项目时 -home,例如 - 我希望它能将我带到一个屏幕,其中包含我在特定屏幕的特定布局中创建的所有内容。都是静态的东西,比如TextViews和图像,所以我不必对它们做任何事情。

我应该创建一个activity以及每个项目的布局ListView抽屉的并(不知道如何)开始活动onItemSelected()?或者我可以做一些事情,例如每次单击其中的项目时即时创建一个片段ListView并说类似的话

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

EDIT

作为测试我投入onItemClick()传入数组位置的方法单击。作为测试,我只是使用如下:

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

它确实有效,但显然我丢失了抽屉,因为联系人布局的东西没有嵌套在DrawerLayout。有没有更优雅的方法来实现我的目标而不是使用switch关于位置和使用setContentView(),修改要嵌套在 a 中的任何布局DrawerLayout? (我什至不知道这是否可能 - 可能不可能,因为有相同的 ID)

@Stefan编辑此内容,因为评论回复中没有足够的空间

谢谢斯特凡,谷歌的例子让我更加困惑。我确信我可能已经读过一万遍但我的大脑拒绝吸收的片段中有一些非常狡猾的东西。 据我了解,在 Google 的示例中,当您单击抽屉中的某个项目时,它确实会创建一个新片段,并使该片段替换除抽屉之外的唯一内容ListView in the MainActivity的 xml 布局,这是一个FrameLayout这占据了屏幕的所有空间。然后所有片段所做的就是显示一个行星ImageView所以代码告诉片段根据ListView项目单击的数组位置。


好吧,这里有很多入门问题,还有一个非常新且尚未定义的问题。

首先,您只需执行以下操作即可启动一个新活动:

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

从任何 Activity (或 Fragment,稍微修改为 'this' = 'this.getActivity()' )

无论您使用“Activity”还是“Fragments”,您始终都必须创建一个类和一个所属的 xml 视图。 您可以构建一些通用的东西,但大多数时候您不想这样做。

关于是否应该启动一个新的活动,或者在单击抽屉后切换片段的问题,我想说这仍然很难说。

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

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

从技术上讲,这种将活动置于应用程序角色中,这可能会带来额外的困难。 然而,从视觉上看,过渡更加平滑,例如,操作栏保持不变,这更像是谷歌喜欢的“锚点”。

然而,他们似乎在教程中切换片段而不是启动活动,所以也许您应该尝试这种方式,并处于“新的做事方式”的前沿:)

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用导航抽屉更改片段(?)布局或活动 的相关文章

  • Android 覆盖在软件按钮之上

    我正在尝试编写一个绘制自定义鼠标指针的应用程序 我目前有一个服务 它创建一个扩展 ViewGroup 的类 并使用 WindowManager 系统服务将其显示为带有 FLAG LAYOUT IN SCREEN 设置的 TYPE SYSTE
  • 通过数据绑定将字符串传递到包含的布局不起作用

    我正在尝试使用 Android 数据绑定功能将一个简单的字符串从我的主布局传递到布局 它编译得很好 但传递给包含的值实际上并未传递 即 它没有出现在我的布局中
  • Android 主机意图过滤器通配符

    是否可以在 android host 属性上使用通配符 就像是 android host site com android pathPattern android pathPrefix m android scheme http gt Or
  • 我可以在 firebase android 中加载另一个用户个人资料图像吗?

    如果我有其他用户的电子邮件但我以其他用户身份登录 我是否可以加载其他用户的个人资料图像 如果您使用 Firebase Storage 那么从技术上讲是的 它只是一个您可以从中检索任何文件的文件系统 如果不伪造您的应用程序 获取 api 密钥
  • AppCompat v21 工具栏更改徽标大小

    我正在从以前的操作栏迁移到 appcompat v21 中的新工具栏功能 我仍然想将徽标保留在操作栏 工具栏 的左上角 为此 我在布局中添加了支持工具栏 并为其创建了一个新的工具栏 app theme style NewToolBarSty
  • 如何将 EditText 传递给另一个活动?

    Intent intent new Intent this Name class intent putExtra key et getText toString startActivity intent Intent intent getI
  • Android中不同线程的数据库访问

    我有一个在 AsyncTasks 中从互联网下载数据的服务 它解析数据并将其存储在数据库中 该服务持续运行 当服务写入数据库时 活动会尝试从数据库中读取更改 我有一个数据库助手 有多种写入和读取方法 这会导致问题吗 可能尝试从两个不同的线程
  • 如何在 iOS 应用程序中通过其他应用程序共享内容/数据,就像我们在 Android 应用程序中使用 Intent.ACTION_SEND 所做的那样?

    在Android中 我们可以通过Intent ACTION SEND startactivity api轻松共享内容 文本 图像 视频等 我已经有一个应用程序可以完美地做到这一点 并且有一个并行的 iOS 应用程序 我希望它能够实现相同的功
  • 从多个选项卡中的编辑文本字段获取文本

    我正在尝试创建一个使用选项卡作为输入表单的 Android 应用程序 基本上 我希望对其进行设置 以便用户可以在一个选项卡上输入一些信息 然后提交该信息 或者转到另一个选项卡并输入更多信息 然后从两个选项卡提交信息 我正在使用操作栏和片段来
  • Android GCM 服务器的 API 密钥

    我有点困惑我应该为 GCM 服务器使用哪个 API 密钥 在文档中它说使用 android api 密钥 这对我不起作用并且总是给出未经授权的 http developer android com google gcm gs html ht
  • 如何在android中的操作栏中创建Edittext?

    我们可以在操作栏中使用编辑文本吗 在阅读了 Google 中的大量资源后 我找不到如何在操作栏中创建编辑文本 谁能告诉我该怎么做 您可以设置自定义View为了ActionBar像这样 getActionBar setCustomView R
  • 在 AppAuth-Android 中注销

    我有一个用JAVA开发的Android应用程序 对于这个应用程序 我使用的是身份服务器4 https github com IdentityServer IdentityServer4作为我的 STS 一切正常 但我找不到任何注销的实现Ap
  • 从手机访问本地主机[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我正在使用
  • android 中camera.setParameters 失败

    我已将相机功能包含在我的应用程序中 我还在市场上推出了该应用程序 我从一位用户那里收到一条错误消息 称他在打开相机时遇到错误 我已经在 2 1 的设备上测试了该应用程序 我从用户那里得到的错误是使用 Nexus One 它主要运行 2 2
  • ACCESS_BACKGROUND_LOCATION 不适用于低于 Q (29) 的 Android 版本

    我的应用程序面向 Android API 28 根据文档 https developer android com preview privacy location target android 10 我应该要求ACCESS BACKGROU
  • 删除Android所有语言中的字符串

    我有一个包含多个翻译的应用程序 我想删除一些字符串 我怎样才能重构并删除它们一次 例如在默认情况下strings xml文件并自动将删除传播到其他翻译的其他 strings xml 文件 您可以通过 Android Studio 中的 翻译
  • 如何在Android中解析xml类型的HTTPResponse

    我有一个 Android 应用程序 我使用 POST 方法来获取响应 这是我的代码 HttpResponse httpResponse httpclient execute httppost HttpEntity resEntity htt
  • 在状态栏下方显示DialogFragment内容

    我试图显示高度和宽度均具有 match parent 的 DialogFragment 但碰巧在顶部 DialogFragment 显示在 StatusBar 下方 DialogFragment 正在应用一些默认值来填充底部 右侧 左侧和顶
  • 具有矢量可绘制的 ImageView 的 Resources$NotFoundException

    我遇到了崩溃 Resources NotFoundException用于在活动创建时绘制的矢量 21 日前崩溃 安卓工作室2 1 支持库24 0 0 Gradle插件2 1 0 目标SDK 23 最小SDK 15 buildTools版本
  • 异步更新后更新Android Listview

    我正在将 HTTP 调用从同步调用转换为异步调用 由于连接在后台运行 因此当我最初设置列表适配器时 数据不存在 如何在 HTTP 调用后更新列表适配器 我尝试了一些方法 例如在数据发送回之前不设置适配器并再次设置适配器 但没有任何效果 这是

随机推荐