Android ActionBar模式-多个活动或片段

Android ActionBar模式-多个活动或片段,android,android-layout,android-fragments,android-actionbar,uinavigationbar,Android,Android Layout,Android Fragments,Android Actionbar,Uinavigationbar,stackoverlow上几乎没有类似的问题,但我还没有找到关于如何为更复杂/多活动应用程序实现动作栏模式的任何答案的明确解释 据我所知,有两种选择: 1.)实施多个活动,并在每个活动中实施/包括操作栏 -->问题是,当你吃午餐时,新的活动,虽然它有相同的外观动作栏,但它有这种过渡,并跳过屏幕,所以很明显,它是一个新的“窗口”,新的独立屏幕,它扼杀了单一应用程序导航框的感觉 2.)使用单个FragmentActivity,其中包含操作栏,并使用多个可膨胀内容框架的片段。 -->这是一个相当不错的

stackoverlow上几乎没有类似的问题,但我还没有找到关于如何为更复杂/多活动应用程序实现动作栏模式的任何答案的明确解释

据我所知,有两种选择:

1.)实施多个活动,并在每个活动中实施/包括操作栏 -->问题是,当你吃午餐时,新的活动,虽然它有相同的外观动作栏,但它有这种过渡,并跳过屏幕,所以很明显,它是一个新的“窗口”,新的独立屏幕,它扼杀了单一应用程序导航框的感觉

2.)使用单个FragmentActivity,其中包含操作栏,并使用多个可膨胀内容框架的片段。 -->这是一个相当不错的动作条模式实现,但问题是它违背了谷歌的建议,即手机的一个活动中应该有一个片段。还是没有?从“外观和感觉”来看,我会说Gmail应用程序主要是这样做的

3.)TabActivity-已弃用

对于第二种解决方案(单个活动、多个片段),我担心将来是否会出现性能问题?在这种情况下,android如何处理内存?它会像对待活动一样杀死不活动的片段以释放空间吗?或者它会杀死整个应用程序,或者用户手机会过载

也许我遗漏了一些东西,但我发现实现android导航模式和片段的使用非常令人困惑:/

有什么理由不让手机上有一个包含多个片段的活动吗?
(可能会有cca 5-6片段,其中一些片段中有嵌套片段)

首先,您可能认为这是有用的

虽然您正在谈论actionbar,但真正的问题是关于带有多个片段的一个活动或多个活动的模式。如前一个链接所述,尽管“过于简化的教程”建议在手机情况下启动另一个活动来显示项目的内容,但这可能会导致一些重复的逻辑或代码

最后,建议使用“具有多个片段的FragmentActivity”。由于这与谷歌的建议背道而驰,他说,我引述他的话:“不要认为它被迫使用许多活动,而是认为它有机会将代码分割成许多片段,并在使用它们时节省内存。”


注:仅供参考,如果您在切换片段时更改了活动的actionbar,您可能希望在按下“后退”键并更改Backback时正确处理UI更改。通常,重写onbackbackchanged()函数来处理UI。

谢谢您的回答……在我打开这个问题之前,我已经看到并阅读了发布的链接,但我还没有真正理解它。因为,这个答案的结论是,好的实践是ActionBarSherlock模式,我不熟悉。我并没有使用ABS,但我在阅读那个贴出的链接时下载了它的源代码,但我无法找到提到的演示。这就是我的意思-有类似的问题,但我还没有找到一个明确的答案(至少对我来说不是),回到这个话题上,我发现你们的答案很有用。。。需要明确的是,您是否认为在内存和性能方面,拥有一个包含多个片段的活动是好的?Android不会威胁说这是一个讨厌的黑客?很高兴这有帮助。实际上,ABS只是一个非官方(但非常优秀)的支持库,可以在Android的较低版本中提供actionbar支持。与谷歌的支持库v4一样,由于一些未知的原因,操作栏不受支持。然而这是一个非常好的模式,一些天才开发了ActionBarSherlock来支持低于3.0的API来使用ActionBar。在那些没有Android官方对Actionbar的支持的日子里,ABS帮了大忙。Google的支持库的更高版本(例如)已经支持API 7+的ActionBar。(1/2)详细解释的要点是,使用一个带有多个片段的活动或多个活动的设计模式独立于是否使用ABS。无论您使用的是ABS、naive ActionBar还是Support Library V7,链接的建议仍然有效。CALARIFY我的观点我认为使用一个活动和多个具有不同功能的片段是一个更好的解决方案,1)更干净的代码2)更强的可伸缩性。作为性能问题,这是一个复杂的情况。但是有了多个片段,您可以使用资源和逻辑更好地控制当前