2012-11-09 64 views
1

我对Android还是有点新鲜,所以我可能没有必要的布局专业知识来确保我不会创建不必要的视图节点。目前我的主要XML布局非常庞大(大约770行),因此加载时间过长(大约2秒,这使得它无法响应)。android cache巨大的布局通货膨胀

我了解了可以解析XML并返回一个View的inflate命令,所以我想我可以在启动屏幕中使用AssyncTask缓存这些视图,并在主要活动的onCreate()中使用它。

可以解决这个问题吗?还有什么我应该看看?我目前意识到内存泄漏的可能性,所以我会留意这一点。

编辑:我试过预充气,但我似乎没有达到性能提高。

LayoutInflater inflater = LayoutInflater.from(this); 
View layout = inflater.inflate(R.layout.question, null, false); 

然后在另一个活动,过了一会儿:

setContentView(layout); 

但是仍然占据同为2秒开。我错过了什么吗?我正在做的事情是否预先充气?真的不应该改善吗?

回答

0

是的,您可以使用LayoutInflater课程“预先膨胀”您的观点。不过,我建议您使用Hierarchy Viewer工具评估您的版式效果,以确定发生了什么问题。 Romain Guy有几部关于如何使用这个工具的视频。您还可以使用Lint(已取代旧的layoutopt工具)给出的提示来优化布局。有关详情,请致电here

+0

我试过预膨胀但没有区别。我坚持不得不重构布局本身? – h4lc0n