【发布时间】:2011-08-08 18:05:59
【问题描述】:
正如 Android 文档所述:“活动是用户可以做的一个单一的、专注的事情。”
但是,使用 Fragments,我们将能够在与 Reto Meier suggest 相同的 Activity 中做许多“事情”。他的建议是用同一 Activity 中的内容片段替换选择片段(“在我们的代码中,这会产生两难”一节)。
假设我的应用程序“有点”复杂,有很多活动,有一个复杂的导航树,并且在设计时考虑了“用户可以做的单一、专注的事情”原则。
现在让我说我必须让它适应片段和大屏幕......而且我不想创建第二个应用程序,在一个应用程序中也没有两个完全不同的逻辑(一个用于手机,另一个用于表格)。
我应该有一个 Activity 来管理所有应用程序片段和片段事务吗?就像上面的 Retro Meier 建议一样。这是推荐的路径吗?从而打破了活动的“用户可以做的单一、专注的事情”原则?
或者我错过了什么?我希望;)
顺便说一句,我认为 Fragments 看起来很棒,但从我目前所见,只有当您从头开始创建应用程序时。因为让应用程序与手机和平板电脑兼容看起来有点乏味。希望是错的:)
Dianne Hackborn already has answered(感谢链接 mgv):
您可以将整个应用程序放在一个 Activity 中,在该 Activity 中您可以随着片段状态的变化而更改片段结构
因此,Activity 成为一种容器,您可以在其中插入 Fragment。我喜欢这种方法,但是......在我的应用程序中,有大约 30 种不同的操作可用,每个操作都需要执行大约 2 到 4 个屏幕步骤(表单和选择列表),它们都不同,并且还有导航限制。它适用于每个活动处理一个屏幕/步骤行为。
因此,为了移植到 Fragments,我应该将每个屏幕逻辑移动到 Fragments,并将活动用作每个操作的容器。因此,让活动作为管理每个操作的片段之间导航的活动,对吗?看起来适应长时间的应用程序会很痛苦。 :(
当前的 Activity 定义应该会有所改变。 :)
【问题讨论】:
标签: android android-activity port android-3.0-honeycomb android-fragments