2

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

据我了解,有两种选择:

1.)实现多个活动,并在每个活动中实现/包含操作栏->问题是,当您午餐新活动时,尽管它具有相同的操作栏,但它具有过渡,并在屏幕上跳转,所以很明显它是一个新的“窗口”,新的分离屏幕,它扼杀了单一应用导航框架的感觉。

2.) 使用单个 FragmentActivity,其中带有操作栏,并带有多个片段,这些片段会膨胀内容框架。--> 这是操作栏模式的一个很好的实现,但问题是它违背了谷歌的建议,即在电话的情况下,一个片段应该在一个活动中。还是没有?从“外观和感觉”来看,我会说 Gmail 应用程序主要是通过这种方式完成的。

3.) TabActivity - 已弃用。

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

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

是否有任何理由反对在手机上进行一项包含多个片段的活动?(会有 cca​​ 5-6 个片段,其中一些有嵌套片段)

4

1 回答 1

1

首先,您可能认为这个问题这个答案很有用。

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

最后,推荐使用“带有多个片段的FragmentActivity”。由于它违反了 google 的建议,Stephen Asherson说并且我引用:“不要认为它是被迫使用许多活动。认为它有机会将您的代码分成许多片段,并在使用时节省内存他们”。

PS。仅供参考,如果您在切换片段时更改活动的操作栏,您可能希望在按下“返回”键并更改后台堆栈时正确处理 UI 更改。通常,重写 onbackstackchanged() 函数来处理 UI。

于 2013-09-16T05:11:53.217 回答