我是一名业余爱好者,过去几周一直致力于琐事游戏。从用户的角度来看,游戏的第一个版本运行良好,但代码非常凌乱,我正在从头开始编写游戏的第二个版本。我也正在对游戏在页面之间移动的方式做出重大改变,从视图翻转转换为使用片段。根据我到目前为止的研究,我认为新设计更符合最佳实践,但我不确定我是否完全理解支持和反对使用片段的论据如何适用于此游戏。
设计#1。旧设计依赖于三个活动文件:MainActivity用作启动页面,允许用户选择适当的难度级别,GameActivity在ViewFlipper和ScoreActivity的帮助下提供了琐事问题和答案报告用户的分数,同时确保最高分数被记录在偏好中。
设计#2。新设计将依赖于具有单个片段容器和四个片段的单个活动文件。 StartFragment是启动页面,QuestionFragment是问题页面,AnswerFragment是答案页面,ScoreFragment报告最终游戏分数。
我认为基于片段的设计#2更符合最佳实践。关于Android编程的BIG NERD RANCH书籍宣传A.U.F. (“总是使用片段”)的理由是,事后总是更难以返回并添加片段,但必须有其他论据支持片段。
我在StackOverflow上研究了这个,大多数示例涉及不同的情况(例如拆分视图和可重用的视图)。
因此,我的问题是:在上述游戏的背景下,有哪些支持片段的论据与视图翻转相反?对于这个愚蠢的小琐事游戏,是否有针对基于片段的设计的良好论据?
亚伦
答案 0 :(得分:1)
简单地说,Fragment
就像迷你Activity
一样,它允许您将应用程序逻辑分解为执行特定操作的较小的有组织单元。这使您可以将应用程序功能分解为更集中,可重用的组件,从而更好地适应不同的设备。
这是一个更好的替代方法,可以让大Activity
个做很多事情,这些事情变得臃肿且难以维护,并且难以使用不同的屏幕尺寸和方向(想想风景/平板电脑) 。
Fragment
,因为它们预先提供了灵活性和代码组织,因此随着应用程序的发展和添加对更多设备配置和功能的支持,它将更易于维护和更灵活。我写了in depth blog about using Fragment
s to support any device in any orientation,其中介绍了Fragment
与一个开源示例项目一起添加的原因。
支持片段的论据有哪些,而不是在上述游戏的背景下查看翻页?
查看翻转将要求Activity
使用您的所有逻辑和内存,即使一次只有一些是活动的,而Fragment
可以在适当的时候加载时间。
对于这个愚蠢的小琐事游戏,是否有针对基于片段的设计的良好论据?
你可能会说Fragment
确实会为非常简单的事情增加一些架构开销。但是,随着您的功能和代码的增加,Fragment
和良好的设计将为您节省很多麻烦,并且表现更好。如果您打算向公众发布此游戏,我建议您使用Fragment
s(必要时)。