我知道 Activities
旨在表示我的应用程序的单个屏幕,而 Fragments
被设计为可重用的 UI 布局,其中嵌入了逻辑。
直到不久前,我开发了一个应用程序,因为它说应该开发它们。我创建了一个 Activity
来表示我的应用程序的屏幕,并将片段用于 ViewPager
或 Google Maps
。我很少创建 ListFragment
或其他可以多次重复使用的 UI。
最近我偶然发现一个项目只包含 2 Activities
一个是 SettingsActivity
另一个是 MainActivity
。 MainActivity
的布局填充了许多隐藏的全屏 UI 片段,并且只显示了一个。在 Activity
逻辑中有很多 FragmentTransitions
在应用的不同屏幕之间。
我喜欢这种方法的原因是,因为应用程序使用 ActionBar
,它保持不变并且不会随着屏幕切换动画移动,这就是 Activity
切换时发生的情况。这为这些屏幕过渡提供了更流畅的感觉。
所以我想我要问的是分享你目前关于这个主题的开发方式,我知道它乍一看可能看起来像是一个基于意见的问题,但我把它看作是一个 Android 设计和架构问题……基于意见的一个。
更新(01.05.2014): 在 Square 的 Eric Burke 的演讲之后,(我不得不说这是一个很棒的演讲,为 android 开发人员提供了很多有用的工具。而且我与 Square 没有任何关系)
http://www.infoq.com/presentations/Android-Design/
根据我过去几个月的个人经验,我发现构建应用程序的最佳方式是创建一组片段,这些片段代表应用程序中的一个 流程,并将所有这些片段呈现在一个 Activity
中。所以基本上你的应用程序中的 Activities
的数量与流的数量相同。这样,动作栏在所有流程的屏幕上保持不变,但在更改流程时重新创建,这很有意义。正如 Eric Burke 所说,我也意识到,尽可能少使用 Activities
的理念并不适用于所有情况,因为它会在他所谓的“上帝”活动中造成混乱。
原文由 Emil Adz 发布,翻译遵循 CC BY-SA 4.0 许可协议
一些错误的想法:
事情就是这样!
片段旨在实现 UI 的可重用部分,并在需要的应用程序的任何部分中使用它们。它们不是为替代活动而设计的。
我们什么时候必须使用它们中的每一个?
我希望它会有所帮助。