我知道它Activities的目的是代表我的应用程序的单个屏幕,同时Fragments设计为可重用的UI布局,其中嵌入了逻辑.
直到不久前,我开发了一个应用程序,因为它说应该开发它们.我创建了一个Activity代表我的应用程序的屏幕并使用Fragments for ViewPager或Google Maps.我很少创建ListFragment可以多次重用的UI或其他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的应用程序的数量与流量的数量相同.这样,操作栏在所有流程的屏幕上保持完整,但正在重新创建流程,这很有意义.正如埃里克伯克所说,并且我也已经意识到,尽可能少Activities地使用的哲学并不适用于所有情况,因为它在他所谓的"上帝"活动中造成混乱.
我已经阅读了关于这个主题的文档和一些其他问题的线索,我真的不相信; 我没有清楚地看到这种技术的使用限制.
片段现在被视为最佳实践 ; 每个Activity基本上应该支持一个或多个Fragments而不是直接调用布局.
创建片段是为了:
允许Activity使用许多片段,在它们之间进行更改,重用这些单元... ==> Fragment完全依赖于Context一个活动,所以如果我需要一些通用的东西,我可以在许多活动中重复使用和处理,我可以创建我自己的自定义布局或视图...我不会关心片段会添加的额外复杂性开发层.
更好地处理不同的分辨率==>对于平板电脑/手机,如果是长时间的过程,我们可以在平板电脑的同一个活动中显示两个(或更多)片段,并在手机中逐个显示.但我为什么要使用片段始终?
处理回调以在Fragments之间导航(即:如果用户登录,我会显示一个片段,否则我会显示另一个片段).===>试着看看facebook SDK登录有多少bug因为这个,要明白它真的是(?)......
考虑到Android应用程序基于活动......在Activity中添加另一个生命周期会更好地设计一个应用程序......我的意思是模块,场景,数据管理和连接将更好地设计,办法.===>这是一个过去常常看到带有Fragments愿景的Android SDK和Android Framework的人的答案.我不认为这是错的,但我不确定它会给出好的结果......它真的很抽象......
====>为什么我会一直使用它们使我的生活复杂化,编码更多?否则,如果它只是某些案例的工具,为什么它是最佳实践呢?这些案件是什么?
如果我写得太多,我很抱歉,谢谢你的时间.我希望我会引起你的注意,因为我真的需要关于这个主题的想法和经验.
最好的问候,艾哈迈德
performance android android-layout android-fragments android-fragmentactivity
我的Android应用程序中有一个MainActivity,我在RecyclerView中显示了一个项目列表.
每个Item可以有多个子项,子项也可以有自己的子项(如树).我想为主项和子项显示相同的活动,但在ActionBar上显示后退箭头.
是否可以重用MainActivity?