是否有关于如何处理Android活动与片段中的UI转换的模式?我目前正在寻找一个在Landscape中最多有3列的UI。 我希望用户界面从屏幕上的1列开始,然后在第二列中选择移动的内容,然后在平板电脑和手机上点击第3个第二个淡入淡出的内容并淡出第1列在手机上。 我想知道什么时候我应该这样做作为一个活动过渡,当我应该使用片段与出现的视图。据我所知,片段可以转移到其他活动,所以我的选择是实现具有静态列布局的活动,然后转换将片段与它们一起使用,或者让一个Activity包含所有3列,并让Activity管理出现的片段。这两种方法都可行,但我对两种解决方案的多种角度都有利有弊。
有两个问题类似于我的问题,但不完全回答我的问题
答案 0 :(得分:12)
碎片可能看起来像前面的代码更多(因为你在一个片段中放置一个视图,在一个Activity中放一个片段,而不仅仅是一个Activity中的一个视图),但是它们可以很好地避免头痛在这种情况下 - 绝对与片段一起使用。他们甚至为您处理过渡。
我们有一些名为“Honeycomb Gallery”的示例代码,您可以查看here,它具有两列加动作栏布局,并能够显示/隐藏最左侧的列。这应该为您提供一个良好的开端,以确定如何为多个片段进行布局并显示/隐藏它们。
仅供参考,在Activity中使用多个片段而不是多个活动的一个重要权衡是片段不直接响应意图 - 例如,如果你有一个笔记记录应用程序,其中“查看注释”页面是一个活动,你改变它,以便在主Activity中有一个“查看注释”片段,然后你必须设置它,使主活动收到一个注释ID和一个注释动作(创建,视图,在Intent中编辑(无论如何),而不是让“查看注释”活动在Intent中接收注释ID。然后,主Activity需要相应地在页面上设置片段。这并不是什么大问题,但如果通过Intent对应用程序的各个部分进行外部访问非常重要,那么将应用程序分解为几个活动可能更容易,并且使用片段来表示各个组件。
答案 1 :(得分:1)
基于页面The Android 3.0 Fragments API,活动是独立的,而片段可以像迷你活动一样,必须托管在实际的活动中。
接着说,片段API的引入让Android开发人员有机会解决开发人员使用Activity遇到的许多痛点,因此在Android 3.0中,Fragment的实用程序远远超出了调整不同屏幕的范围:
我认为对应用程序使用单个活动不一定是错误的决定,只是风格问题。根据您要完成的任务,您应该做出决定。
然而,片段的引入被认为可以解决现实世界的问题。仅基于此,我建议您编写一些“概念证明”代码并评估结果。在这个时候,这可能是唯一重要的真实世界测试
答案 2 :(得分:1)
使用全屏活动
将片段用于部分屏幕或不屏幕(但不是服务)
在我的主应用程序中,水平滚动视图中有屏幕选项卡,我希望在应用程序的多个部分中保留。部分包括 新闻,照片,视频,日程安排等所有单用户可关注的任务。
包含它的主应用程序是一个应用程序,而选项卡只是一个调用片段管理器的视图。
但是,我将活动用于应用程序中更深层次的复杂用户活动。例如。如果有人播放视频,请查看项目详细信息页面和照片库/幻灯片部分,因为它们都是全屏组件。
转换到全屏时无需显示/隐藏片段,因为活动堆栈可以快速轻松地处理您想要执行的所有操作,并保持代码最小化和清洁。
所以我有活动 - >房屋碎片 - >启动全屏特殊命令的活动。