片段如何影响活动"用户可以做的单一,集中的事情"原则?

Axe*_*cia 11 port android android-fragments android-3.0-honeycomb android-activity

正如Android文档所述:"活动是用户可以做的单一,重点突出的事情."

然而,对于Fragments,我们将能够在Reto Meier建议的同一个Activity中做很多"事情" .他的建议是用相同活动中的内容片段替换选择片段("在我们的代码中,这会产生一个两难").

让我们说我的应用程序是一个"更复杂",有许多活动,具有复杂的导航树,并设计了"用户可以做的单一,集中的事情"的原则.

让我们说现在我必须将它改编为Fragments和大屏幕...而且我不想创建第二个应用程序,在一个应用程序中也没有两个完全不同的逻辑(一个用于表的其他电话).

我应该有一个Activity来管理所有应用程序片段和片段事务吗?就像上面提到的Retro Meier一样.这是推荐的路径吗?从而打破了"用户可以做的单一,专注的事情"活动的原则?

或者我错过了什么?我希望 ;)

顺便说一句,我认为片段看起来很棒,但从我看到的到现在,只有你从头开始创建一个应用程序.因为使应用程序与手机和平板电脑兼容看起来有点单调乏味.希望是错的:)


Dianne Hackborn已经回答了(thx为链接mgv):

您可以将整个应用程序放在一个活动中,在该活动中,当状态发生变化时更改碎片结构

那么Activity就成了一种容器,你可以在其中插入Fragments.我喜欢这种方法,但是......在我的应用程序中,大约有30种不同的操作可用,每种操作需要执行大约2到4个屏幕步骤(表单和选择列表),所有这些操作都有所不同,并且还有导航限制.它适用于每个处理一个屏幕/步骤行为的活动.

然后,要移植到Fragments,我应该将每个屏幕逻辑移动到Fragments,并将Activities用作每个操作的容器.因此,将Activities作为管理每个操作的Fragments之间导航的对象,对吗?看起来很难适应长期应用程序.:(

当前活动定义应该改变一点btw.:)

Com*_*are 6

我应该有一个Activity来管理所有应用程序片段和片段事务吗?

这是不可能抽象回答的.但是,即使在基于片段的世界中,大多数应用程序也会有多个活动.其中一些将适应较小的屏幕尺寸,其中每个活动往往是一个片段.框架将需要其中一些(例如,继承自PreferenceActivity).而且,其中一些将通过GUI设计.

从而打破了"用户可以做的单一,专注的事情"活动的原则?

文档的这一部分是在2008年编写的,也许更早.如果当时存在片段,我想文档将说明片段是"用户可以做的单一,集中的事情",其中活动充当编排层,确定在什么情况下哪些片段是可见的.

文档不会在所有地方都进行更新以反映碎片,即使这样,也需要一些时间.对于2011年的余额,您至少需要执行自己的2008年度指令翻译,以将其转换为2011年代基于片段的UI.

让我们说现在我必须将它改编为Fragments和大屏幕...而且我不想创建第二个应用程序,在一个应用程序中也没有两个完全不同的逻辑(一个用于表的其他电话).

我不知道你认为"完全不同的逻辑"是什么.在基于片段的应用程序中,您的大部分业务逻辑都将位于片段中.这些活动再次充当编排层,确定哪些片段应该可见并协调事件处理.后者将获得比以前要稍微复杂些,因为有时在项目上单击列表中会出现一个新的片段,有时单击某个项目在列表将开始一个新的活动,这取决于屏幕尺寸.

或者我错过了什么?

说实话,你错过了足够的具体问题,以使其合理地回答问题.