2013-08-18 39 views
1

对于一些很好的建议,这是一个无奈之举。从片段到活动的重构

我开始做一个涉及导航抽屉作为应用程序主菜单的项目。在看了Android tutorial之后,我按照这个例子开始研究。该示例是根据抽屉中的选定选项替换碎片的单个活动。部分原因是,我遵循这个设计,因为如果我发起活动,抽屉就会丢失,活动将随着启动过渡而出现,并且看起来不太好。

现在,我的项目不小。在开发过程中我遇到喜欢的几个问题:

  • 的onResume没有呼吁片段(由于没有附着于几个活动,但一个替代
  • 所有片段之间的数据应该通过单一的活动
  • 管理选项菜单ActionBar中成为一个真正的痛苦。
  • 和很多人一样,我不记得现在

现在我面临的一个新问题。在我需要的片段之一有一个微调将切换这个片段内的碎片。当然,片段将需要更改操作栏中的导航模式。这是一个令人头痛的问题,但现在我面临着一个更大的问题,即丢失活动环境中的一些碎片(就像它们被分离了一样)。

经过这么多的问题,我只是决定将整个应用程序切换回活动(这是一个自定义应用程序,将运行在1个平板电脑模型,所以不用担心碎片)。所以,总之,我正在寻求建议,以较不痛苦的方式来做到这一点。

我在一个非常紧迫的期限,导致我开始实施没有设计(就像一个完整的noob)。现在我遇到了很多问题,如果我不需要钱,我会马上取消这个项目。

请帮忙!

+0

事情怎么样了?我最近试图将我的应用程序的体系结构更改为单个活动,但我开始认为这是一个糟糕的主意。 – theblang

+0

我不知何故设法保持项目的每个屏幕只有一个活动和一个片段。我不会推荐任何人这样做,但有很多功能与活动密切相关,这很容易让事情发挥作用。如果你的应用程序在开发过程中不太高级,我会告诉你每个片段保留1个活动。正如@Shadesblade所说,如果与我不同,应用程序几乎已经完成,并且已经有了大量的hacky解决方法,那么应该很容易做到。祝你好运;-) – momo

+0

非常感谢您的意见!我想我会切换回活动。这让我感到困扰,导航抽屉似乎推动加载碎片,但随后处理碎片非常困难。 – theblang

回答

1

我可以给你一点建议,但可悲的是你的情况不能真正解决任何一个答案在这里。

首先,从片段设计切换到活动设计比切换相反方式要容易得多。实际上,您可以使用之前的所有片段,并且每个活动只加载一个片段(如果您愿意,也可以加载多个片段)。

此外,当处理意图(开始新活动)时,在startActivity()呼叫后,您可以拨打overridePendingTransition()来启动任何想要的启动转换(或完全删除它)。

+0

谢谢!我想这更像是一场绝望的咆哮。无论如何,你的回答让我对重构整个事情感到更积极,除了我已经采取的克服这种“设计”限制的所有黑客替代方法外,不应该那么难。 – momo