2012-04-21 129 views
2

我开始一个Activity来初始化一个复杂的布局。这是一个包含大量图片,文字浏览,EditTexts,Checboxes,Spinners和ActionListener的表格。每个项目的位置都不相同,具体取决于被调用者的起始位置。所以信息存储在意图中。布局计算持续时间太长

这意味着:布局不能通过XML构造,因为所有的项目总是有不同的位置。

问题:此计算需要很长时间。活动开始前最多可能需要400   ms。这真是太糟了。

我该如何避免这种情况?据我所知,我不能预先计算布局。无法克隆视图。如果我在另一个Activity中创建该视图并将其分配到此处,我也会遇到一些崩溃。

+0

400ms意味着大约半秒钟,我认为这将是好的 – 2012-04-21 10:56:02

+0

xml布局的加载速度更快,然后java代码视图和400ms是不是一个很长的时间。 – 2012-04-21 12:17:26

+0

您将得到更好的答案,并提供一些关于布局结构的额外细节。 – QED 2012-04-21 12:53:41

回答

1

用碎片构建您的布局,并为用户的整个构造制作动画。可能需要超过400毫秒才能完成,但用户是看到你的美丽布局在他眼前创造的体验。如果没有你的布局细节,很难给出比这更多的建议。

0

我也认为400毫秒不是很多时间。你可以尝试

一件事是,你可以在XML文件中,并在您的活动创建布局创造出重新定位的所有元素的功能。首先重新定位你可以得到你的视图的布局参数,然后你可以设置新的位置,然后你可以根据新的位置再次在你的视图上设置布局参数。

+0

400 mx实际上是非常多,当你点击并期待一个回应。实际上我正在做的是重新组织布局 - 不幸的是,这是大部分时间都需要的。 – softwaresupply 2012-04-21 11:34:23

+0

我遇到类似的问题。我结束了重新设计布局,使其作为ListView工作...我不知道这是否可能是你的情况。 – Caumons 2012-04-21 11:41:24

+0

我认为如果你将克隆视图,那么你也需要改变你所有视图的位置。因此,这将与我上面提出的相同,您可以重新定位所有视图。 – 2012-04-21 11:49:58