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