【问题标题】:Proper usage for Activities in Android正确使用 Android 中的活动
【发布时间】:2014-03-17 22:47:46
【问题描述】:

据我了解,活动相当于网络应用中的“页面”。

例如,列表视图将是一个活动,编辑视图另一个活动,并添加视图第三个活动。

虽然这按预期工作,但 android 活动似乎作为单独的应用程序运行 - 每个活动的操作栏不同,菜单也不同。

我对上述活动的使用是否正确,或者我应该使用其他一些机制,例如换出布局和视图?

【问题讨论】:

  • 您错误地假设 ListView、EditView 等是单独的活动。它们只是单独的 UI 元素,每个活动可能有多个实例。但是您可以将一项活动视为一个单独的应用程序/多页应用程序的一个“页面”。活动(顾名思义)是一种允许用户执行……活动的结构。从编码的角度来看,每个 Activity 从头到尾都是自己独立的程序,只有松散的编程绑定到其他应用程序 Activity。另一方面,片段是更完整的解决方案。
  • @velis,你假设我的假设。 :)

标签: android android-activity


【解决方案1】:

片段是活动的核心部分 - 并没有太大的不同。从 Honeycomb 3.0 开始使用片段,这个想法是一次将屏幕分成几个片段的选项。例如,如果您查看平板电脑的 gmail 应用程序 - 您在左侧有一个片段处理导航,然后右侧的下一个片段是电子邮件列表。

在移动设备上,查看区域是有限的,所以你可以说片段的行为就像一个活动——你与一个片段交互,触发另一个片段,依此类推。但最后你总是引用每个片段的 super 活动 - 例如当你想要访问上下文时。

因此,如果您只想将网页包装在 WebViews 中,请坚持使用活动。如果您的方案可能涉及为平板电脑和手机进行开发,那么请选择片段。

或者,您可以在此处阅读两者的设计理念: http://developer.android.com/guide/components/fragments.html

祝你好运!

【讨论】:

    【解决方案2】:

    当您在多个活动中具有共同特征时,将使用片段。从我的角度来看,您应该使用单独的活动,因为将有后端代码来支持(获取和验证数据,即业务逻辑)。这样你就有了更多的模块化代码。 Fragments 是 v3.0 的新功能。

    【讨论】:

      【解决方案3】:

      据我所知,片段将是一个不错的选择,可以在不同的设备上使用不同的配置/不动产。例如,如果您使用的是平板电脑或电视等具有大空间的设备,您可以在单个活动中显示更多内容,另一方面,对于具有较小空间的设备,您可以基于渐进方式显示内容。

      看到这个:http://developer.android.com/training/multiscreen/adaptui.html

      请注意,仅运行 Android 3.0 的设备支持 Fragments,因此您可能必须使用 Support Fragments(请参阅:https://stackoverflow.com/a/6528757/713778

      但这同样取决于您的具体需求。我不确定您的具体用例是什么,但我建议您观看一些 Android 设计实战,以了解一些示例,以改进您的设计并使您的应用“以用户为中心”(请参阅​​:https://www.youtube.com/playlist?list=PLWz5rJ2EKKc8j2B95zGMb8muZvrIy-wcF

      我最近看到这个https://www.youtube.com/playlist?list=PLWz5rJ2EKKc-riD21lnOjVYBqSkNII3_k 似乎提供了对用户体验的深入分析。

      【讨论】:

        【解决方案4】:

        我建议将片段用于类似 Web 的视图。与活动相比,片段非常灵活且可重复使用。

        但在开始之前,请确保片段非常适合您的要求,因为它们受 android 3.0 支持。

        您可以从 xml 本身声明片段,也可以创建框架布局并将该视图添加到代码本身中。

        http://www.c-sharpcorner.com/UploadFile/2fd686/fragments/

        上面的链接有一个很好的例子tabhost。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-03-05
          • 2015-06-04
          相关资源
          最近更新 更多