我正在开发一个应该在第一页上显示多个图块的应用程序。 Tiles是从json动态生成的,每个都应该根据json中指定的大小进行自我分配,并且应该根据需要使用尽可能多的屏幕。每个图块代表简短的信息摘要。要求是当按下tile时,用户被重定向到另一个页面,该页面提供了整个页面的更详细信息(如表单)。然后用户应该能够返回上一页并根据需要选择另一个图块或返回第一个图块。我事先不知道会有多少瓷砖,它们的组件是什么,所以一切都是动态的。还有可能需要在详细视图上绘制小瓷砖(具有不同信息)。
目前,我正站在第一页上显示所有小瓷砖的舞台上,我需要找到显示详细视图的最佳方式,并允许用户轻松快速地导航。由于内部组件的绝对定位,每个图块都会扩展RelativeLayout。我正在考虑将贴图从布局切换到碎片,因为它们似乎提供了所需的灵活性,我搜索的许多文章和教程都是指它们。在这种情况下,当用户按下图块片段时,所有现有图块将被所需的细节片段替换。按下后退按钮会将细节片段替换为屏幕上先前较小的片段(它是显示所有片段还是只显示一个?)。
我正在考虑的另一个选项是留下布局,并在平铺上按下用户将用户重定向到具有详细视图的单独活动。在这种情况下,导航回来似乎正在破坏活动,如果用户想要返回它,则需要再次重绘(重绘是不可取的)。
我的问题是性能更好。每个磁贴和详细视图中都可能包含一些图像,整页将需要一些时间来加载。但是弄清楚如何以编程方式处理碎片可能需要一段时间,而我想要找到的最后一件事是片段不适合。也许您对描述的场景有其他想法?任何好的教程/文章,其中片段是完全以编程方式创建和管理的(没有XML)。 我对Android比较新,现在完全迷失了。
编辑: 谢谢大家的意见。此时我无法选择最佳答案。我现在必须做更多的研究和学习。将在以后这样做。
答案 0 :(得分:2)
片段应该是最好的方式。因为动态地填充片段中的细节很容易。将帮助检查我写的一些可以解决这个问题的代码
答案 1 :(得分:2)
片段是Android中用于创建GUI的新样式,它们不应与性能方面的简单Activity + xml布局进行比较。创建片段是为了更容易在手机和平板电脑上构建复杂的GUI。您可以使用这两种方法创建低性能GUI。
根据您的描述,我认为最好创建两个片段,并在Master Detail模式中连接它们。 Master将是您的json列表,其中包含简短的摘要,详细信息将是您的附加数据片段。您仍然可以将两个片段放在单独的活动中,并显示来自主节点的细节片段(主要行为将被隐藏) - 这在小屏幕设备上是有意义的。但您可以在平板电脑的一个屏幕上显示这两个片段。请参阅“主要详细信息流模板”,http://developer.android.com/tools/projects/templates.html。
因此片段为您提供了很大的灵活性来修改您的UI,而无需大量的代码重写。
一些像ViewPager这样的新小部件只能使用片段,所以如果你想使用它,你最好花时间学习它们。
答案 2 :(得分:1)
根据您的描述,您不需要片段来执行此操作。在您的主页面上,您可以使用GridView来显示您的图块。您可以创建另外两个活动。一个名为TileActivity,每次按下一个图块时都会打开。然后,您可以创建一个PopulateActivity,根据按下的Tile,使用相关信息填充TileActivity。在性能方面而不是关闭TileActivity以返回到主页面,您可以使用Intent Flags以便TileActivity不会关闭它只是添加到堆栈然后重新启动而不是每次调用它时重新创建。